i将我的应用程序升级为Spring Boot 3.4,健康检查不再起作用。我需要更改以使健康检查再次起作用?
logs如果我打电话
docker container inspect
,我会看到以下日志以进行治疗检查:
"Health": {
"Status": "unhealthy",
"FailingStreak": 6,
"Log": [
{
"Start": "2025-02-10T09:12:40.658415283Z",
"End": "2025-02-10T09:12:40.716595544Z",
"ExitCode": -1,
"Output": "OCI runtime exec failed: exec failed: unable to start container process: exec: \"/bin/sh\": stat /bin/sh: no such file or directory: unknown"
},
配置
<configuration>
<image>
<env>
<BP_SPRING_CLOUD_BINDINGS_DISABLED>true</BP_SPRING_CLOUD_BINDINGS_DISABLED>
<BP_HEALTH_CHECKER_ENABLED>true</BP_HEALTH_CHECKER_ENABLED>
<BPE_LANG>en_US.UTF-8</BPE_LANG>
</env>
<buildpacks>
<buildpack>gcr.io/paketo-buildpacks/adoptium</buildpack>
<buildpack>urn:cnb:builder:paketo-buildpacks/java</buildpack>
<buildpack>gcr.io/paketo-buildpacks/health-checker:latest</buildpack>
</buildpacks>
<createdDate>${maven.build.timestamp}</createdDate>
</image>
</configuration>
<goals>
<goal>build-image-no-fork</goal>
</goals>
i添加到我的docker container run
命令命令健康检查参数:
--health-cmd /workspace/health-check
--health-interval 1m
--env THC_PORT=8081
--env THC_PATH=/health
研究 i读取
SpringBoot 3.4发行注释:
使用MAVEN我需要在春季靴子Maven配置中更改什么才能使健康检查再次起作用?spring-boot:build-image
目标或Gradle的默认云本机构建构建器用于为JVM应用构建OCI映像时使用的the thaus builder
bootBuildImage
任务已从paketobuildpacks/builder-jammy-base
变为
。这应该导致较小的图像。paketobuildpacks/builder-jammy-java-tiny
构建器不包含外壳,因此它可能对需要启动脚本运行应用程序的应用程序不起作用。它还包括一组减少的系统库,根据您的应用程序,可能无法满足其需求。有关自定义构建器的信息,请参见Maven或Gradle文档。 因此,图像中没有外壳。与日志相匹配。tiny
我读了包装OCI images,但我不明白,我必须更改什么。问题
i发现了一个工作(添加builder
元素)来使用旧图像:
<configuration>
<image>
<builder>paketobuildpacks/builder-jammy-base</builder>
<env>
<BP_SPRING_CLOUD_BINDINGS_DISABLED>true</BP_SPRING_CLOUD_BINDINGS_DISABLED>
<BP_HEALTH_CHECKER_ENABLED>true</BP_HEALTH_CHECKER_ENABLED>
<BPE_LANG>en_US.UTF-8</BPE_LANG>
</env>
<buildpacks>
<buildpack>gcr.io/paketo-buildpacks/adoptium</buildpack>
<buildpack>urn:cnb:builder:paketo-buildpacks/java</buildpack>
<buildpack>gcr.io/paketo-buildpacks/health-checker:latest</buildpack>
</buildpacks>
<createdDate>${maven.build.timestamp}</createdDate>
</image>
</configuration>
<goals>
<goal>build-image-no-fork</goal>
</goals>
还请参见: