当前位置: 首页 > 知识库问答 >
问题:

Docker Create react应用程序热重新加载不工作

贺高杰
2023-03-14

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

通常只使用卷就足够了,但我还添加了:CHOKIDAR\u USEPOLLING=true in ENV,正如create react app官方文档所说,我将代码移到了WSL,因为我在Windows 10上,但仍然是一样的。我用create react app创建了另一个项目,我用docker和CHOKIDAR\u USEPOLLING=true创建了一个项目,效果很好,但当我添加更多服务时,它就不再有效了。


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

-

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

COPY . .

CMD ["npm","start"]

使用docker compose up可以很好地工作,当我编辑在NestJS中构建的后端时,会更改自动重新加载,但对于create react应用程序则不会。

共有1个答案

王英彦
2023-03-14

这个问题出现在文件Dockerfile中workdir是/var/app/,而在我的docker-compose.yml中,我将当前工作目录挂载到/var/app/前端,我刚刚删除了 /frontend并正常工作。

 类似资料:
  • 问题内容: 我有一个加载DLL来执行处理的特定部分的应用程序 Process.dll 使用反射 在运行时动态加载 ,并且未在应用程序中引用。 处理完成后,需要在服务器上重新编译DLL,然后稍后再次加载。 为此,我需要释放它,否则会收到以下消息:“无法将文件“ Process.dll”复制到“ Process.dll”。该进程无法访问文件“ Process.dll”,因为被另一个进程使用。” 因此,

  • 我正在尝试热重新加载Lua模块,但在我的情况下,标准方法似乎不起作用。 我创建了两个简单的示例模块“app.lua”和“test.lua”,其中前一个模块作为应用程序的入口点: 并从后者加载一个函数: 此应用程序在docker容器中运行,该容器构建自Tarantool官方图像。假设我对“test”模块的代码进行了更改,比如,将带有print的行更改为“print(“?”)。重新加载模块的标准方法是

  • 我创建了一个反应应用程序使用创建-反应-应用程序样板,这似乎是非常受欢迎的,热重载一些时候更新时,任何文件的变化,有些时候没有,似乎有一个最小的持续时间或类似的东西,我使用Ubuntu,节点版本7.0,package.json的脚本是我缺少什么?

  • 今天是我用React v17做的第一个项目(如果这很重要或不重要),我正在改变状态、dom等的东西,它不会像以前那样重新加载任何东西。通常情况下,当你有状态内的东西要保存时,你会注意到它,然后它就消失了,但是现在它不再发生了。 是否有什么我可以检查的,看看我是否做错了什么?只是一个用CreateReact应用程序创建的项目,clean。 这就是我所有的,https://github.com/Ste

  • 我正在尝试使用: 显示在控制台中,但什么也没发生<我怎样才能解决这个问题?

  • 两个命令“NPM run Build”和“PM2 reload All”使用ansible引发错误,但在目标服务器上这些命令运行良好 目标服务器上的pm2位置:即pm2 pm2://home/ubuntu/.nvm/versions/node/v12.10.0/bin/pm2 {“changed”:false,“cmd”:“pm2全部重新加载”,“msg”:“[Errno 2]没有这样的文件或目录