Heroku转Docker容器部署,执行container:release命令时报错求助
排查Heroku容器部署报错:
Error: This command is for Docker apps only. Run git push heroku main to deploy 可能的根因
heroku stack:set container命令未成功生效,应用仍处于Git部署栈- 应用开启了GitHub自动部署,Heroku优先采用Git部署逻辑
- Heroku CLI缓存了旧的应用配置,未识别到栈切换操作
- Docker镜像推送未完成,或镜像标签/路径配置错误
解决步骤
确认容器栈状态
运行以下命令检查当前应用栈:heroku stack --app {{MyHerokuAppName}}输出需显示
container为current栈。若未生效,重新执行栈设置命令并确保无报错:heroku stack:set container --app {{MyHerokuAppName}}关闭GitHub自动部署
若之前用GitHub部署,自动部署会覆盖容器部署设置,可通过命令行关闭:heroku features:disable github-integration --app {{MyHerokuAppName}}或登录Heroku控制台,进入应用
Deploy标签页,断开GitHub关联并关闭自动部署开关。刷新CLI配置缓存
注销并重新登录Heroku CLI,清理本地缓存:heroku logout && heroku login再次执行
heroku apps:info --app {{MyHerokuAppName}},确认Stack字段为container。验证镜像推送结果
检查docker push的输出,确保所有镜像层推送成功(出现successfully pushed提示)。若推送失败,重新执行tag和push命令,确认{{DockerImageName}}是本地已存在的有效镜像:docker tag {{DockerImageName}}:latest registry.heroku.com/{{MyHerokuAppName}}/web docker push registry.heroku.com/{{MyHerokuAppName}}/web一键式容器部署(可选)
放弃手动tag/push流程,使用Heroku CLI的集成命令自动完成构建、推送和发布:heroku container:push web --app {{MyHerokuAppName}} heroku container:release web --app {{MyHerokuAppName}}
内容的提问来源于stack exchange,提问作者Palani Kumar
相关产品推荐
相关产品推荐

