Docker运行React app不能实时更新代码

207 阅读1分钟

需要设置环境变量:CHOKIDAR_USEPOLLING=true,仍然不起效,原因是react18以后的环境变量设置变为:WATCHPACK_POLLING=true 故在 Dockerfile 中配置环境变量:

设置环境变量 ENV WATCHPACK_POLLING=true ENV CHOKIDAR_USEPOLLING=true

重新构建和运行容器后只更新了之前第一次修改的代码,也没有实现实时更新 使用: docker run -p 5173:5173 -v "$(pwd):/app" -e WATCHPACK_POLLING=true -e CHOKIDAR_USEPOLLING=true react-docker仍然失败

配置docker-compose.yml: `version: '3.8'

services: react-app: image: node:20 # 使用 Node.js 20 官方镜像 container_name: react-app working_dir: /app ports: - "5173:5173" # Vite 开发服务器的默认端口 volumes: - .:/app # 挂载当前目录到容器中的 /app - /app/node_modules # 避免主机覆盖容器中的 node_modules environment: - CHOKIDAR_USEPOLLING=true # 启用轮询模式解决热更新问题 - WATCHPACK_POLLING=true # Webpack 文件监听轮询模式 command: > sh -c "npm install && npm run dev" # 容器启动时安装依赖并运行开发服务器 ` 仍然无效 最终发现问题是:**docker volume挂载本机文件,在宿主机修改文件之后,容器内部不会同步生效,没有发生对应的修改,需要重启容器才可以正常同步。**即挂载文件不同步