Docker不会将我的webpack端口暴露给我的本地机器

问题描述 投票:1回答:2

我正在尝试用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
2个回答
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(有点过时,但一些很好的信息)


0
投票

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

webpack配置的主机应该是'0.0.0.0'而不是'localhost'(就像我的情况一样)

© www.soinside.com 2019 - 2024. All rights reserved.