Невозможно использовать docker-compose с gulp-webserver

Я пытаюсь использовать 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 из хост-системы.

Что происходит?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
323
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказывается, моя проблема была связана с конфигурацией 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'
    }));
});

Другие вопросы по теме