无法与gulp-webserver一起使用docker-compose

时间:2019-06-02 18:18:31

标签: docker gulp docker-compose

我正在尝试将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://localhost:3000

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

原来我的问题与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'
    }));
});