You need to enable JavaScript to run this app. 远程服务器Docker中Django项目代码修改后自动重载失效问题
优惠活动
大模型
产品
解决方案
定价
更多

远程服务器Docker中Django项目代码修改后自动重载失效问题

问题根因&修复方案

1. 启用Gunicorn自动重载参数

你当前使用的Gunicorn默认关闭了文件变动监听重载功能,仅需修改docker-compose中web服务的启动命令,添加--reload参数即可:

command: gunicorn my_project.wsgi:application --bind 0.0.0.0:8000 --reload

该参数仅可在开发环境使用,禁止用于生产部署,会带来性能下降和安全风险

2. 修复跨环境文件监听失效问题

如果是本地Windows/macOS同步代码到Linux远程服务器、或者使用WSL环境,系统默认的inotify文件监听机制可能失效,可额外添加轮询重载的参数强制检测文件变动:

command: gunicorn my_project.wsgi:application --bind 0.0.0.0:8000 --reload --reload-engine=poll

3. 开发环境替代方案:使用Django自带runserver

如果Gunicorn重载仍存在异常,开发阶段可直接替换为Django官方开发服务器,自带的重载机制兼容性更强:

command: python manage.py runserver 0.0.0.0:8000

Django runserver仅适用于开发场景,禁止在生产环境使用

4. 配置校验项

  • 确认项目settings.py中DEBUG = True,开发环境下可配合重载直接展示修改后的效果
  • 进入容器验证文件同步是否生效,执行命令:
    docker exec -it my_project_ws cat /my_project/你修改的代码文件路径
    
    确认输出内容和本地修改后的版本一致,排除挂载路径不匹配的问题

内容的提问来源于stack exchange,提问作者MRavaghi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 17:12:02