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

Django Cookiecutter Docker构建失败:超出最大递归深度

解决Docker Compose构建生产镜像时的递归深度超出错误

我之前碰到过一模一样的问题,给你几个亲测有效的解决方向:

  • 升级Docker Compose版本
    这个递归报错大概率是旧版Docker Compose的已知bug,尤其是版本低于1.25.0的情况。先运行docker-compose --version查看当前版本,然后升级到最新稳定版:

    • Linux系统可以用官方脚本安装:sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose,之后给文件加执行权限:sudo chmod +x /usr/local/bin/docker-compose
    • macOS用户直接用Homebrew更新:brew upgrade docker-compose
    • Windows用户通过Docker Desktop的设置界面就能完成更新
  • 排查production.yml的循环依赖
    仔细检查你的production.yml配置,有没有服务之间出现循环依赖?比如服务A的depends_on包含服务B,而服务B的depends_on又引用了服务A,这种循环会让Docker Compose在解析配置时陷入递归死循环。可以临时注释掉部分服务的依赖项,逐步排查出问题根源。

  • 简化配置定位问题服务
    把production.yml里的服务逐个注释掉,每次只保留一个核心服务执行构建测试,这样能快速定位是哪个服务的配置触发了错误。比如先只保留web服务,构建成功后再依次添加其他服务,直到复现递归报错。

  • 清理Docker缓存
    有时候缓存的镜像层可能存在异常,导致构建过程中出现奇怪的递归问题。运行docker system prune -a清理所有未使用的镜像、容器和缓存,之后重新执行构建命令试试。

  • 检查Cookiecutter模板的生产脚本
    部分Cookiecutter Docker模板的生产环境entrypoint或构建脚本里可能有递归调用逻辑,比如某个shell脚本或Python脚本无限调用自身。可以查看模板生成的production.yml里的command或entrypoint配置,或者构建阶段执行的脚本,排查是否存在无限循环的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:50:28