我有两个服务:service-background & service-webapi.这些是在docker-compose.注册的服务背景需要首先启动。只有这样,服务-webapi才可能被引导。这是一个固定的订单。我在docker-Compose.yml中有以下配置:
networks:
my-fantastic-network
services:
background-service:
build: backgroundproject
networks:
my-fantastic-network:
aliases:
-background-service
webapi-service:
build: webapi
depends_on:
-background-service
networks:
my-fantastic-network:
aliases:
-webapi-service我认为这足以让webapi服务等待后台服务,但是这个服务启动得太快了,完全搞砸了。
我的后台服务具有如下文件结构的日志文件:server/Database/ log /startup.log如果日志文件包含“数据库成功初始化”文本,则后台服务准备就绪,webapi服务可以安全启动。我可以使用Linux grep函数来检查日志文件是否包含这个特定的文本。但我不知道怎么和码头工合作。
我做了一些研究,并有一个健康检查属性可用于坞-撰写,但我不太熟悉它。
有人能帮我吗?
发布于 2020-01-21 16:11:16
只需看一看非常好的码头文档:https://docs.docker.com/compose/compose-file/#healthcheck
但也许这对你来说不是正确的解决办法。我建议对此进行调查:
https://docs.docker.com/compose/startup-order/
这是一个简单实用的解决方案,在映像中添加一个脚本,首先等待到db的连接,然后启动实际的启动脚本。
希望这能有所帮助。
https://stackoverflow.com/questions/59844977
复制相似问题