Docker不会将我的webpack端口公开给本地机器

时间:2019-04-26 14:53:13

标签: node.js docker webpack docker-compose

我正在尝试使用docker创建一个reactjs应用程序,因此我需要公开我的webpack开发服务器之一的端口3000。

这是我的Dockerfile:

FROM node:11-alpine

RUN mkdir /app
WORKDIR /app

COPY package.json .
RUN npm i

COPY . .

CMD ["npm", "start"]

npm start仅仅是webpack-dev-server

还有我的docker-compose.yml:

version: '3'

services:
  sample-app:
    container_name: sample-app
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - '.:/app'
      - '/app/node_modules'
    ports:
      - '3000:3000'

当我去http://localhost:3000/时,它不起作用。

2 个答案:

答案 0 :(得分:0)

在您的Docker文件中,您需要公开端口3000。将其添加到CMD行上方的Dockerfile中

EXPOSE 3000

docker-compose文件中的行将端口3000从主机映射到容器中的端口3000,但是如果没有上面的行,则端口3000并未“打开”到主机。

这些文章提供了更多详细信息:https://medium.freecodecamp.org/expose-vs-publish-docker-port-commands-explained-simply-434593dbc9a3

https://medium.com/@andyccs/webpack-and-docker-for-development-and-deployment-ae0e73243db4(有些过时,但有些不错的信息)

答案 1 :(得分:0)

我用这个来修复它: https://github.com/webpack/webpack-dev-server/issues/547#issuecomment-284737321

webpack配置的主机应为“ 0.0.0.0”,而不是“ localhost”(就像我的情况一样)