【问题标题】:Docker won't expose my webpack port to my local machineDocker 不会将我的 webpack 端口暴露给我的本地机器
【发布时间】:2019-09-16 02:47:41
【问题描述】:

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

这是我的 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/ 时,它不起作用。

【问题讨论】:

    标签: node.js docker webpack docker-compose


    【解决方案1】:

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

    webpack 配置的主机应该是 '0.0.0.0' 而不是 'localhost'(在我的例子中)

    【讨论】:

      【解决方案2】:

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

      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(有点过时,但有一些不错的信息)

      【讨论】:

        猜你喜欢
        • 2019-01-20
        • 1970-01-01
        • 2016-06-26
        • 2021-08-05
        • 2017-10-12
        • 2018-09-03
        • 1970-01-01
        • 2011-06-10
        • 1970-01-01
        相关资源
        最近更新 更多