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

macOS下docker-compose管理的Django容器代码修改不生效问题

解决方案

  1. 优先修正挂载路径错误(核心问题)
    你Dockerfile中COPY service_api /opt/service_api是将本地service_api目录下的应用代码直接存入容器的/opt/service_api路径,但你compose中配置的挂载是把本地service_api目录挂载到容器的/opt/service_api/service_api子目录下,相当于代码嵌套了一层,Django启动时默认加载的是镜像构建时写入的/opt/service_api下的旧代码,根本不会读取你挂载到子目录的新代码。
    修改docker-compose.yml的volumes配置为:
volumes:
  - ./service_api/:/opt/service_api
  1. 修复Mac端Docker文件同步bug
    你使用的Docker Desktop 3.5.0 + macOS Big Sur 11.4版本存在gRPC FUSE驱动的文件同步已知问题,操作如下:
  • 打开Docker Desktop偏好设置 -> 通用选项卡
  • 取消勾选「Use gRPC FUSE for file sharing」,切换为osxfs驱动
  • 重启Docker生效
  1. 清理旧缓存重新启动服务
    执行以下命令清理旧容器、缓存镜像,重新启动:
docker-compose down -v
docker-compose up --build
  1. 验证配置有效性
    启动服务后进入容器确认文件同步状态:
docker exec -it service-django bash
# 进入代码目录查看修改后的文件内容是否和本地一致
cat /opt/service_api/你修改的文件路径

同时确认Django的settings.py中DEBUG = True,且启动命令没有加--noreload参数,保证自动重载功能正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:06:01