Spring Boot 2.7.9构建Google Stackdriver镜像失败求助
解决方案
1. 锁定兼容的Paketo组件版本
直接指定之前能正常构建的旧版Paketo组件集,避开有问题的paketo-buildpacks/node-engine:1.2.1。在项目构建配置中明确指定兼容的buildpack版本:
Gradle 配置示例:
bootBuildImage { buildpacks = [ 'gcr.io/paketo-buildpacks/java:7.3.0', // 替换为之前可用的Java buildpack版本 'gcr.io/paketo-buildpacks/google-stackdriver:4.2.0', // 对应兼容的Stackdriver版本 'paketo-buildpacks/node-engine:1.2.0' // 锁定无问题的node-engine版本 ] }
Maven 配置示例:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <image> <buildpacks> <buildpack>gcr.io/paketo-buildpacks/java:7.3.0</buildpack> <buildpack>gcr.io/paketo-buildpacks/google-stackdriver:4.2.0</buildpack> <buildpack>paketo-buildpacks/node-engine:1.2.0</buildpack> </buildpacks> </image> </configuration> </plugin>
2. 为构建环境补充Python依赖
如果必须使用新版Paketo组件,可以通过前置Python buildpack为构建环境添加Python,让pprof源码编译流程正常执行:
Gradle 配置示例:
bootBuildImage { buildpacks = [ 'paketo-buildpacks/python:0.12.0', // 适配的Python buildpack版本 'gcr.io/paketo-buildpacks/google-stackdriver:4.3.0', 'paketo-buildpacks/node-engine:1.2.1' ] }
也可以在构建时临时注入环境变量指定Python版本:
pack build your-app-name --env BP_PYTHON_VERSION=3.9 --buildpacks gcr.io/paketo-buildpacks/java,gcr.io/paketo-buildpacks/google-stackdriver,paketo-buildpacks/node-engine:1.2.1
3. 替换pprof预编译包下载地址(临时 workaround)
如果是预编译包URL失效导致的404,可以手动指定可用的pprof包地址:
bootBuildImage { environment = [ 'GOOGLE_STACKDRIVER_PROFILER_PPROF_DOWNLOAD_URL': 'https://storage.googleapis.com/pprof/releases/pprof-linux-amd64_0.0.2' // 替换为官方最新可用的预编译包地址 ] }
内容的提问来源于stack exchange,提问作者Per Newgro
相关产品推荐
相关产品推荐

