Docker部署Django部分文件夹热重载失效问题排查求助
Django Docker热重载排查建议(api/v2文件夹不触发问题)
- 检查
INSTALLED_APPS配置:确认api.v2是否已正确注册到Django项目的settings.py中,未注册的子模块不会被热重载机制监听。 - 核对Docker卷挂载规则:查看docker-compose.yml或启动命令中的
volumes配置,确保api/v2目录被正确挂载到容器内(比如使用./api:/app/api而非仅挂载api/v1),避免宿主机文件修改无法同步到容器。 - 对比目录权限:进入容器执行
ls -l /app/api,查看v2与v1的文件/目录权限、所属用户组是否一致,权限异常可能导致Django无法检测到文件变化。 - 确认runserver启动参数:排查是否添加了
--noreload(会关闭热重载),或通过--settings指定了特殊配置文件,导致v2目录未被纳入监听范围。 - 检查目录结构差异:对比
v2与v1的目录嵌套深度、文件名格式,特殊字符或过深目录可能导致热重载检测失效。 - 查看容器内Django日志:启动runserver时,日志会输出"watching for changes in these directories"内容,确认
v2是否在监听目录列表中。 - 手动测试容器内文件更新:进入容器执行
touch /app/api/v2/任意文件.py,若触发热重载则是宿主机-容器的文件同步问题;若未触发则是Django监听逻辑问题。 - 排查第三方热重载工具:如果使用了django-watchdog等工具,确认其配置中是否包含
v2目录,避免工具遗漏监听路径。
内容的提问来源于stack exchange,提问作者Rock Dev Mufasa
相关产品推荐
相关产品推荐

