我的服务无法启动,并且启动了越来越多的副本。问题是失败的任务永远不会尝试重新启动,但是某些后续副本可以正常启动。
所以我的问题是,有没有办法检测启动问题或限制服务的启动时间,放弃该容器并重试,并且如果可能的话,仅使用docker-compose.yml吗?
详细信息:
我正在Linux主机上使用Version: 18.09.2 , API version: 1.39
客户端和服务器。
运行Shutdown
命令以启动更多副本之后不久,失败的服务便处于状态docker stack scale
。尽管该命令的输出继续无限期地阻塞,并且失败的服务显示为starting
。
使用journalctl -u docker.service | tail -n 50
查看日志,此消息每隔几秒钟输出一次,并且即使我缩小到3个工作副本后也可以无限期地继续。
time="2019-06-06T16:20:17.897937551-04:00" level=warning msg="grpc: Server.Serve failed to complete security handshake from \"10.30.50.117:46806\": remote error: tls: bad certificate" module=grpc
这些是Rabbitmq服务,这些服务聚集在启动后在容器中运行的脚本中,这里是有关Rabbitmq的更多详细信息。
我正在使用具有rabbitmq:3-management-alpine
的dockerhub映像RabbitMQ 3.7.15
。
我从docker service logs <service_ID>
得到了以下内容:
error:{badmatch,["rabbitmq.config","rabbitmq.2019.06.06.19.43.37.config"]}
Log file(s) (may contain more information):
{"init terminating in do_boot",{badmatch,["rabbitmq.config","rabbitmq.2019.06.06.19.43.37.config"]}}
init terminating in do_boot ({badmatch,rabbitmq.configrabbitmq.2019.06.06.19.43.37.config})