You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用test.yml docker-compose配置启动时Django热重载功能失效

问题根因

Django 内置的manage.py testserver命令默认禁用了自动热重载机制,该设计是为了避免测试过程中服务意外重启干扰测试流程,和你的Docker挂载配置无关。你两套配置的volume挂载规则一致,本地文件变更已经可以正常同步到容器内,仅服务本身没有监听文件变更重启。

解决方案

方案1:给testserver添加重载参数(适用Django 4.0+版本)

直接在test.yml的web服务启动命令末尾添加--reload参数即可开启热重载:

command: > 
  sh -c "python manage.py makemigrations &&
    python manage.py migrate && python manage.py testserver cypress/fixtures/user.json cypress/fixtures/tracks.json --addrport 0.0.0.0:8000 --reload"

方案2:改用runserver加载fixture(全版本兼容,更稳定)

如果方案1不生效,建议把测试环境启动逻辑换成和开发环境一致的runserver,先手动加载fixture再启动服务,天然支持热重载:

command: >
  sh -c "python manage.py makemigrations &&
    python manage.py migrate &&
    python manage.py loaddata cypress/fixtures/user.json cypress/fixtures/tracks.json &&
    python manage.py runserver 0.0.0.0:8000"
额外配置修正

你当前test.yml中的celeryworker服务启动命令存在笔误,缺少worker参数,建议修正为和开发环境一致的配置:

command: celery -A app worker -l INFO

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:54:05