在fly.io部署Spring Boot应用遇Buildpack检测错误:无构建包组通过检测
解决Fly.io部署Spring Boot时Buildpack检测失败的问题
核心原因
Paketo的Spring Boot Buildpack无法通过检测,通常是因为缺少依赖的JDK环境,或者项目目录中没有符合要求的构建产物(可执行Jar)或构建配置文件(pom.xml/build.gradle)。
解决方案
1. 使用包含完整Java支持的Builder
直接替换为包含JDK、构建工具及Spring Boot支持的full builder,无需单独指定Buildpack:
[build] builder = "paketobuildpacks/builder:full"
2. 补充依赖的JDK Buildpack(若坚持用base builder)
base builder仅包含基础环境,需同时添加JDK Buildpack和Spring Boot Buildpack:
[build] builder = "paketobuildpacks/builder:base" buildpacks = ["gcr.io/paketo-buildpacks/java", "gcr.io/paketo-buildpacks/spring-boot"]
3. 确保项目构建产物或配置存在
- 若已本地构建项目,确认
target/(Maven)或build/libs/(Gradle)目录下有可执行的Spring Boot Jar包; - 若未本地构建,确保项目根目录存在
pom.xml(Maven)或build.gradle/build.gradle.kts(Gradle),Buildpack会自动触发构建流程。
4. 确认部署上下文路径
执行fly deploy时,确保当前工作目录是Spring Boot项目根目录,或通过--path参数指定路径:
fly deploy --path ./your-spring-boot-project-root
问题重现
背景
Heroku自11月28日停止提供免费dyno服务,尝试用Fly.io作为替代方案部署Spring Boot项目,但Fly.io官方文档缺少Spring Boot/Java相关指南。参考Fly.io的Buildpack配置示例,适配了如下fly.toml配置:
[build] builder = "paketobuildpacks/builder:base" buildpacks = ["gcr.io/paketo-buildpacks/spring-boot"]
错误日志
执行fly deploy时在DETECTING阶段报错:
$ fly deploy ==> Verifying app config --> Verified app config ==> Building image Remote builder fly-builder-little-silence-4534 ready ==> Building image with Buildpacks --> docker host: 20.10.12 linux x86_64 base: Pulling from paketobuildpacks/builder b5da66d4625a: Pulling fs layer ... 4f4fb700ef54: Pull complete Digest: sha256:bbc26d8b7fe183a1d59fba3e19b55d7a1e647de0bbf5aa14be98e328c4b7d777 Status: Downloaded newer image for paketobuildpacks/builder:base base-cnb: Pulling from paketobuildpacks/run b5da66d4625a: Already exists 80857de9da00: Already exists 239caa1e3c6f: Pull complete ed65ad332a5e: Pull complete 4fe6ac7cc235: Pull complete Digest: sha256:cfc9b596bedc7bead1b3714a69dffa1fb17fcb1f7bba5c3faadb40c0b6f5acbd Status: Downloaded newer image for paketobuildpacks/run:base-cnb latest: Pulling from paketo-buildpacks/spring-boot 3301de03cfeb: Pull complete Digest: sha256:a6551c90f9af0719233ff4a97408a8ea8054e90f776b592dcbc7f37c03c9518c Status: Downloaded newer image for gcr.io/paketo-buildpacks/spring-boot:latest ===> DETECTING ERROR: No buildpack groups passed detection. ERROR: Please check that you are running against the correct path. ERROR: failed to detect: no buildpacks participating Error failed to fetch an image or build from source: executing lifecycle: failed with status code: 20
内容的提问来源于stack exchange,提问作者jonashackt
相关产品推荐
相关产品推荐

