Я пытаюсь использовать gulp-webserver с Docker, но не могу получить веб-страницы из хост-системы
У меня есть этот Docker файл
FROM node:8
# Create app directory
WORKDIR /usr/src/app
COPY package*.json ./
COPY gulpfile.js .
RUN npm install -g gulp
RUN npm install gulp
# Run when the container launches
CMD ["gulp"]
Я использую его с файлом docker-compose.yml, подобным этому:
web:
container_name: "web"
build: ./web/
restart: always
ports:
- "3000:3000"
volumes:
- "./web/src:/usr/src/app/src"
Все выглядит нормально. Действительно, в логе вижу:
web | [18:06:08] Webserver started at http://localhost:3000
web | [18:06:08] Finished 'serve' after 8.08 ms
web | [18:06:08] Starting 'watch'...
web | [18:06:08] Finished 'watch' after 78 ms
web | [18:06:08] Starting 'default'...
web | [18:06:08] Finished 'default' after 2.85 μs
Если я позвоню curl localhost:3000внутри контейнера, я получу свою страницу. Однако я не могу связаться с http://локальный: 3000 из хост-системы.
Что происходит?


Оказывается, моя проблема была связана с конфигурацией gulp-webserver. Действительно, чтобы получить доступ к серверу из хост-сети, вам нужно установить для параметра host значение '0.0.0.0'. Например.,
gulp.task('webserver', function() {
gulp.src('app')
.pipe(webserver({
port: 3000,
livereload: true,
host: '0.0.0.0'
}));
});