Docker 创建反应应用程序热重载不起作用

MAg*_*ram 14 windows docker reactjs

我正在尝试使用 Create React App 和 Node js 在 Docker 中设置开发环境。但是当我更改代码时,它不会重新加载更改

通常只使用卷就足够了,但我还在 ENV 中添加了: CHOKIDAR_USEPOLLING=true 正如 create react app 官方文档所说,我将代码移至 WSL,因为我在 Windows 10 上但仍然相同。我用 create react app 创建了另一个项目,我使用了 docker with CHOKIDAR_USEPOLLING=true 并且工作得很好,但是当我添加更多服务时将不再工作。

这是我的 docker-compose 文件。


version: '3.3'
services:
  backend:
    image: node
    build:
      context: ./salesbackend/
    ports: 
      - 5000:3001
    env_file: ./salesbackend/.env
    volumes:
      - ./salesbackend:/var/app/salesbackend
      - /var/app/salesbackend/node_modules
    depends_on: 
      - mongo
  frontstore:
    build:
      context: ./frontstore/
    ports:
      - 5001:3000
      - 5002:3003
    env_file: ./frontstore/.env
    environment:
      - NODE_ENV=development
      - CHOKIDAR_USEPOLLING=true
    volumes: 
      - ./frontstore:/var/app/frontstore
      - /var/app/frontstore/node_modules
    depends_on: 
      - backend
  frontend:
    build:
      context: ./frontend/
    ports:
      - 5003:4000
    env_file: ./frontend/.env
    environment:
      - NODE_ENV=development
      - CHOKIDAR_USEPOLLING=true
    volumes: 
      - ./frontend:/var/app/frontend
      - /var/app/frontend/node_modules

  mongo:
    image: mongo
    volumes: 
      - ./db/:/data/db
    ports:
      - 30000:27017
Run Code Online (Sandbox Code Playgroud)

这是我用于前端服务的 Dockerfile,

-> Frontend 和 Frontstore 都是在 create react 应用程序中制作的,并且都不起作用。

FROM node:10
WORKDIR /var/app/
COPY package.json /var/app/package.json
RUN npm install

COPY . .

CMD ["npm","start"]
Run Code Online (Sandbox Code Playgroud)

使用 docker-compose up 效果很好,当我编辑在 NestJS 中构建的后端时,更改自动重新加载,但对于 create-react-app 则不然。

MAg*_*ram 14

固定的

这个问题在文件Dockerfile 中 ,workdir/var/app/ 在我的 docker-compose.yml 中,我将当前工作目录安装到/var/app/frontend,我只是删除了/frontend并且工作正常。