如何检查在docker容器中运行的spring boot应用程序的运行状况以及容器是否停止或该应用程序未运行,我需要根据健康检查状态自动重启容器或应用程序,以便春季启动应用程序将启动并运行每个 有人可以帮我吗,我正在使用docker文件在容器中启动Spring Boot
答案 0 :(得分:2)
这对我有用
healthcheck:
test: curl -m 5 --silent --fail --request GET http://localhost:8080/actuator/health | jq --exit-status -n 'inputs | if has("status") then .status=="UP" else false end' > /dev/null || exit 1
interval: 10s
timeout: 2s
retries: 10
答案 1 :(得分:1)
如果您想使用 spring boot actuator/health
作为 docker运行状况检查,则必须在 docker-compose上添加它文件:
healthcheck:
test: ["CMD", "curl", "--fail", "--silent", "localhost:8081/actuator/health 2>&1 | grep UP || exit 1"]
interval: 20s
timeout: 5s
retries: 5
start_period: 40s
答案 2 :(得分:0)
使用独立的弹簧启动执行器,有许多方法可以独立监视弹簧启动应用程序。您可以在与应用程序服务器端口不同的端口上公开“管理运行状况端口”(如果使用的是Rest api)。
https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html
只需在pom.xml中包含弹簧执行器依赖项,然后在applicaiton.properties/.yml中进行配置,这将公开上面链接中列出的端点。
您可以使用docker healthcheck来检查应用程序的运行状况:
https://docs.docker.com/engine/reference/builder/#healthcheck
您可以设置重启策略,以确保容器崩溃后可以重启:
https://docs.docker.com/engine/reference/run/#restart-policies---restart