我正在尝试使用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/
时,它不起作用。
答案 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”(就像我的情况一样)