我有一个由docker swarm构建的集群,它运行一个springboot项目。当我升级它正在运行的映像时,任务状态变为running, LB将我定向到该节点,但响应是connection refused,以下是我的dockerfile
FROM openjdk:11
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
现在我怀疑springboot项目还没有完全启动成功,任务状态变为running。我想知道是否有办法在任务状态变为running之前使Springboot成功启动。
为服务添加健康检查。
这可以在Dockerfile中通过
HEALTHCHECK ["CMD","curl http://localhost:8080"]
或通过堆栈。yml文件。
对于带有healthcheck的服务,直到healthcheck通过后,Docker swarm才认为该服务已启动,然后才将其添加到负载均衡器中。