Docker撰写不公开networking端口

我设置了这个组合文件,当我做了所有的事情都像预期的那样工作的时候,但是上个星期,当我们试图把它交给其他开发者用来开发的时候,它不再暴露networking和我的生活不知道为什么,大量的谷歌search没有结果。

networking在桥上,而dev是唯一不工作的,转动prod工作正常

version: '2' services: dev: build: context: ./ volumes: - ./:/app ports: - "8080:8080" command: yarn start prod: build: context: ./ ports: - "8080:5000" command: node express.js 

这是关联的dockerfile

 FROM remejuan/node-yarn:8.5.0 # Override the base log level (info). ENV NPM_CONFIG_LOGLEVEL warn # Copy all local files into the image. RUN mkdir -p /app WORKDIR /app COPY ./ ./ # Install all dependencies of the current project. RUN yarn install --pure-lockfile RUN yarn cache clean # Install and configure `serve`. EXPOSE 8080 EXPOSE 5000 

我已经消除了操作系统的原因,我们已经testing了两台Windows 10的机器上运行最新的CE,与Mac相同,我的机器运行的Ubuntu和prod工作的一切,开发没有,但在日志中,我看到webpack纺纱听,端口8080。

使用docker run手动跳转-ti -p 8080:8080 …也不起作用。

抓住任何其他的想法可能。

谢谢

您正在将您的容器暴露于相同的端口8080.这是行不通的。 因为两个服务使用相同的端口。 尝试使用另一个端口的开发。 如果没有指定,您也可以在docker-compose文件中设置环境及其variables。 应明确指定环境来检测您正在运行应用程序的env