【发布时间】:2021-06-13 01:34:44
【问题描述】:
我正在将我的存储库移动到具有单一服务的 docker 容器中,除了反应开发环境的热重载之外,一切似乎都按预期工作。也许有必要为客户开发服务使用卷?代码:
Dockerfile(反应):
FROM node:14
WORKDIR /client
ENV PATH /client/node_modules/.bin:$PATH
COPY package*.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
docker-compose.yaml
version: "3"
services:
server:
build:
context: ./server
ports:
- "5000:5000"
networks:
- default
depends_on:
- db
client-development:
build:
context: ./client
stdin_open: true
ports:
- "3000:3000"
environment:
- NODE_ENV=development
- CHOKIDAR_USEPOLLING=true
networks:
- default
depends_on:
- server
db:
image: "mongo"
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: test
networks:
- default
volumes:
- mongo-data:/data/db
networks:
default:
driver: bridge
volumes:
mongo-data:
driver: local
【问题讨论】:
-
您的开发和部署环境可以不同,这很好。我建议您使用现有的基于主机的 Node 环境进行日常开发,即使您最终是通过 Docker 进行部署。
标签: node.js reactjs docker deployment hot-reload