Docker服务运行状况检查不适用于Spring Boot应用程序

时间:2018-10-03 11:51:20

标签: java docker spring-boot

我将Spring Boot Web应用程序作为docker服务运行,并且在没有运行状况检查的情况下运行良好。

但是,当我尝试创建带有运行状况检查选项的docker服务时,我的服务会在一段时间后(可能在运行状况终止后)自动重新启动,并且永远不会稳定。

我创建了\health个休息端点,只是返回OK 这是我用来创建带有运行状况检查选项的服务的命令,没有它。

带有运行状况检查选项的命令:

sudo docker service create \
    --health-cmd="curl --silent --fail localhost:8090/health || exit 1" \
    --health-interval=5s \
    --health-retries=12 \
    --health-timeout=2s \
    --health-start-period=60s \
    --name=my-service \
    -p "8090:8090" \
    my-docker-img

输出:

s43fbah1qdlxb01s4x5veecos
overall progress: 0 out of 1 tasks 
1/1: starting  [============================================>      ] 

没有运行状况检查的命令:

sudo docker service create \
    --name=my-service \
    -p "8090:8090" \
    my-docker-img

我的spring boot应用程序需要20秒钟才能启动并运行。

1 个答案:

答案 0 :(得分:1)

确保在容器中安装了“ curl”。 --health-cmd="curl --silent --fail localhost:8090/health || exit 1"可能失败。其他一切看起来都很好。

以下命令将帮助您调试问题。您将能够看到日志:

sudo docker inspect --format='{{json .State.Health}}' [container-name-or-id]