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

如何将cookiecutter-django创建的多份Docker镜像推送至Heroku?

解决cookiecutter-django + Heroku容器部署的"No images to push"问题

我之前帮别人处理过类似的cookiecutter-django部署到Heroku容器的问题,你遇到的No images to push报错,本质是Heroku默认在当前目录找Dockerfile,但cookiecutter-django把生产环境的Dockerfile放在了compose/production/django/子目录里,导致Heroku找不到正确的构建文件。下面是两种可行的解决方案,推荐第一种用heroku.yml的方式,更规范也方便后续维护:

方法一:使用heroku.yml配置文件(推荐)

这种方式让Heroku明确知道要构建哪个Dockerfile,以及如何运行服务:

  1. 在项目根目录创建heroku.yml文件,填入以下内容:
build:
  docker:
    web: compose/production/django/Dockerfile
run:
  web: /start

这里的web是Heroku的默认服务名称,compose/production/django/Dockerfile是cookiecutter-django生成的生产环境Django容器镜像文件,/start是该Dockerfile中定义的启动命令(对应cookiecutter-django的生产启动脚本)。

  1. 告诉Heroku使用容器栈运行你的应用:
heroku stack:set container
  1. 配置必要的环境变量(Heroku不会自动读取本地的.env文件):

    • 设置DEBUG为False(生产环境必须关闭):
      heroku config:set DEBUG=False
      
    • 设置SECRET_KEY(可以用本地.env里的,或者生成一个新的):
      heroku config:set SECRET_KEY="your-secure-secret-key-here"
      
    • 设置ALLOWED_HOSTS为你的Heroku应用域名(格式为your-app-name.herokuapp.com):
      heroku config:set ALLOWED_HOSTS="your-app-name.herokuapp.com"
      
    • 如果需要数据库,添加Heroku Postgres插件(会自动设置DATABASE_URL环境变量):
      heroku addons:create heroku-postgresql:hobby-dev
      
    • 如果用到Redis(比如缓存、Celery),添加Heroku Redis插件:
      heroku addons:create heroku-redis:hobby-dev
      
  2. 构建并推送镜像到Heroku:

heroku container:push web
  1. 发布应用:
heroku container:release web

方法二:直接指定Dockerfile路径构建

如果不想用heroku.yml,可以在push时直接指定生产环境Dockerfile的路径:

  1. 先设置容器栈(和方法一一样):
heroku stack:set container
  1. 配置好所有必要的环境变量(参考方法一的步骤3)。

  2. 在项目根目录执行以下命令推送镜像:

heroku container:push web --file compose/production/django/Dockerfile
  1. 发布应用:
heroku container:release web

常见问题排查

  • 确保你已经登录Heroku CLI:执行heroku login确认登录状态。
  • 检查Dockerfile中的路径是否正确:cookiecutter-django的生产Dockerfile是基于项目根目录作为构建上下文的,所以COPY指令的路径是正确的,不要在子目录里执行push命令。
  • 如果部署后应用无法启动,查看日志:heroku logs --tail来排查具体错误(比如环境变量缺失、依赖安装失败等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:33:02