【发布时间】:2020-05-07 17:49:51
【问题描述】:
我有 2 个服务:service-background 和 service-webapi。这些在 docker-compose 中注册。需要先启动服务后台。只有这样 service-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-service 等待后台服务,但是这个启动太快并且完全搞砸了。
我的后台服务有一个日志文件,文件结构如下:server/database/logs/startup.log 如果日志文件中包含“Database initialized successfully”,则说明后台服务已准备就绪,webapi-service 可以安全启动。我可以使用 Linux grep 函数来检查我的日志文件是否包含此特定文本。但我不知道如何使用 docker-compose 来做到这一点。
我做了一些研究,在 docker-compose 中可以使用 healthcheck 属性,但我不太熟悉。
有人可以帮我吗?
【问题讨论】:
标签: docker docker-compose