我将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秒钟才能启动并运行。
答案 0 :(得分:1)
确保在容器中安装了“ curl”。
--health-cmd="curl --silent --fail localhost:8090/health || exit 1"
可能失败。其他一切看起来都很好。
以下命令将帮助您调试问题。您将能够看到日志:
sudo docker inspect --format='{{json .State.Health}}' [container-name-or-id]