如何使用Spring Boot 3.4进行健康检查?

问题描述 投票:0回答:1

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

还请参见:

如何将thc_port和thc_path设置为弹簧靴3.3?

研究 i读取

SpringBoot 3.4发行注释

用于构建OCI图像的Paketo Tiny Builder

使用MAVEN
spring-boot:build-image

目标或Gradle的默认云本机构建构建器用于为JVM应用构建OCI映像时使用的the thaus builderbootBuildImage任务已从

paketobuildpacks/builder-jammy-base

变为

paketobuildpacks/builder-jammy-java-tiny
。这应该导致较小的图像。
tiny
构建器不包含外壳,因此它可能对需要启动脚本运行应用程序的应用程序不起作用。它还包括一组减少的系统库,根据您的应用程序,可能无法满足其需求。有关自定义构建器的信息,请参见Maven或Gradle文档。
因此,图像中没有外壳。与日志相匹配。
我读了
包装OCI images
,但我不明白,我必须更改什么。

问题
我需要在春季靴子Maven配置中更改什么才能使健康检查再次起作用?

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> 还请参见:

包装OCI Images

spring-boot spring-boot-maven-plugin health-check paketo
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.