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

通过Circle CI部署Spring Boot应用到Heroku失败求助

解决Circle CI部署Spring Boot到Heroku时的"No images to push"错误

问题描述

尝试通过Circle CI流水线将Spring Boot应用部署至Heroku平台时失败,错误日志如下(已翻译为中文):

#!/bin/bash -eo pipefail
set -x
sudo curl https://cli-assets.heroku.com/install.sh | sh
HEROKU_API_KEY=${HEROKU_API_KEY} heroku container:login
HEROKU_API_KEY=${HEROKU_API_KEY} heroku container:push -a menustage web
HEROKU_API_KEY=${HEROKU_API_KEY} heroku container:release -a menustage web
+ sudo curl https://cli-assets.heroku.com/install.sh
+ sh
  % 总计    % 已接收 % 已传输  平均速度  时间    时间     时间  当前
                                 下载  上传   总计   花费    剩余  速度
100  1894  100  1894    0     0  55705      0 --:--:-- --:--:-- --:--:-- 55705
此脚本需要超级用户权限。
sudo会提示您输入密码。
正在从https://cli-assets.heroku.com/heroku-linux-x64.tar.xz安装CLI
  % 总计    % 已接收 % 已传输  平均速度  时间    时间     时间  当前
                                 下载  上传   总计   花费    剩余  速度
100 27.2M  100 27.2M    0     0  8255k      0  0:00:03  0:00:03 --:--:-- 8255k
v14.19.0
heroku已安装至/usr/local/bin/heroku
 ›   警告: HEROKU_API_KEY已设置为[已隐藏]
 ›   警告: 我们的服务条款已更改: 
 ›   https://dashboard.heroku.com/terms-of-service
heroku/7.62.0 linux-x64 node-v14.19.0
+ HEROKU_API_KEY=************************************
+ heroku container:login
警告!您的密码将以未加密形式存储在/home/circleci/.docker/config.json中。
配置凭据助手以消除此警告。请参阅
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

登录成功
+ HEROKU_API_KEY=************************************
+ heroku container:push -a menustage web
 ▸    没有要推送的镜像


退出代码为1
CircleCI收到退出代码1

可能的解决方案

1. 先构建Docker镜像

heroku container:push命令依赖已构建好的Docker镜像。在执行推送命令前,需要先运行docker build命令。例如:

docker build -t registry.heroku.com/menustage/web .

将此命令添加到CircleCI流水线中,放在heroku container:push之前。

2. 确保Dockerfile存在于当前工作目录

Heroku容器推送命令默认在当前目录查找Dockerfile。如果你的Dockerfile在子目录,需要使用-f参数指定路径:

heroku container:push -a menustage web -f ./path/to/Dockerfile

或者在执行推送命令前切换到Dockerfile所在目录:

cd ./path/to/dockerfile-directory

3. 检查CircleCI工作目录

确认CircleCI作业的工作目录是你的代码仓库根目录(或Dockerfile所在目录)。可以在流水线中添加pwd命令查看当前目录:

pwd

如果路径不对,使用cd命令切换到正确目录。

4. 验证Dockerfile配置

确保你的Dockerfile正确适配Spring Boot应用,示例配置如下:

FROM openjdk:17-jdk-slim
COPY target/your-app-name.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "/app.jar"]

替换your-app-name.jar为实际的Spring Boot构建产物名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:15:39