Node.js Docker MERN部署-热重新加载不工作

Node.js Docker MERN部署-热重新加载不工作,node.js,reactjs,docker,deployment,hot-reload,Node.js,Reactjs,Docker,Deployment,Hot Reload,我正在将我的存储库移动到一个包含单个服务的docker容器中,除了react开发环境的热重新加载之外,其他一切似乎都按照预期工作。也许有必要为客户机开发服务使用卷?代码: Dockerfile(反应): docker-compose.yaml version: "3" services: server: build: context: ./server ports: - "5000:5000" ne

我正在将我的存储库移动到一个包含单个服务的docker容器中,除了react开发环境的热重新加载之外,其他一切似乎都按照预期工作。也许有必要为客户机开发服务使用卷?代码:

Dockerfile(反应):

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
version: '3.8'
services:
  starter:
    build: .
    image: react-starter-kit
    restart: always
    ports:
      - 3000:3000
    volumes:
      - ./node_modules:/react-starter-kit/node_modules
      - ./src:/react-starter-kit/src

您需要创建绑定装载,以便在主机和运行react应用程序的容器之间进行镜像,例如

Dockerfile

FROM node:14
WORKDIR /react-starter-kit
COPY . .
RUN npm i
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
version: '3.8'
services:
  starter:
    build: .
    image: react-starter-kit
    restart: always
    ports:
      - 3000:3000
    volumes:
      - ./node_modules:/react-starter-kit/node_modules
      - ./src:/react-starter-kit/src

您的开发和部署环境可以不同,这很好。我建议您使用现有的基于主机的节点环境进行日常开发,即使您最终是通过Docker进行部署。