只有当复制副本完成启动时,Docker群才会路由



我已经设置了一个docker swarm配置,它启动了一个复制了x次的java Web服务器映像。现在,服务器需要一段时间才能启动(约40秒(,而容器本身则很快启动。

问题是,docker在容器启动后立即开始路由到容器,而不知道容器内的服务是否准备好提供请求,在我的情况下,这并不是立即

配置docker swarm的惯用方法是什么,以便它只路由到服务器接受请求的容器?

因此,有一个healtcheck部分用于部署compose文件,可以用来确保容器是否健康。

healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3482/monitoring/health"]
interval: 10s
timeout: 5s
retries: 3
start_period: 1m

这将做到这一点,并确保如果健康api返回有效响应,将首先使用容器。