Github Actions部署Node.js到Heroku时分支滞后、无镜像可推报错咨询
报错排查与解决方案
分支落后问题处理
- 先确认CI触发的分支和Heroku应用绑定的部署分支是否一致,若使用非main分支触发部署,需在部署配置中指定对应分支
- 你当前使用的部署action默认启用强制推送覆盖分支,若要关闭该逻辑,可在action的
with参数中添加dontuseforce: 1。若确认本地分支确实落后于Heroku已部署分支,建议先将Heroku代码拉取到本地合并后再触发部署,避免代码丢失。
核心报错No images to push处理
该报错的原因是你使用了Heroku容器部署模式,但CI流程中没有生成符合要求的Docker镜像:
- 若你不需要使用容器部署,只是常规部署Node.js应用,直接在部署action的
with参数中添加usedocker: false即可,关闭容器部署模式后action会走源码推送的逻辑,不需要提前构建Docker镜像 - 若你确实需要用容器部署,需要在部署步骤之前新增Docker镜像构建步骤,且构建的镜像标签必须为
registry.heroku.com/你的应用名/web,否则Heroku无法识别到可推送的镜像,同时要确认项目根目录下的Dockerfile可正常构建
额外检查项
- 确认Github仓库Secrets中配置的
HEROKU_API_KEY、HEROKU_APP_NAME、HEROKU_EMAIL三个参数取值正确,且API_KEY有部署权限 - 当前使用的
akhileshns/heroku-deploy@v3.0.0版本较旧,建议升级到最新稳定版,规避已知版本兼容问题
内容的提问来源于stack exchange,提问作者sqoor
相关产品推荐
相关产品推荐

