使用 Linux grep 检查 docker-compose 服务是否正常



我有2个服务:service-backgroundservice-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 服务等待后台服务,但这个启动得太快并且完全搞砸了。

我的后台服务有一个日志文件,其文件结构如下:服务器/数据库/日志/启动.log 如果日志文件包含文本"数据库初始化成功",则后台服务已准备就绪,webapi 服务可以安全启动。我可以使用 Linuxgrep函数来检查我的日志文件是否包含此特定文本。但是我不知道如何使用 docker-compose 做到这一点。

我做了一些研究,有一个健康检查属性可用于 docker-compose,但我不太熟悉它。

有人可以帮助我吗?

看看非常好的docker文档: https://docs.docker.com/compose/compose-file/#healthcheck

但也许这不是适合您的解决方案。 我建议对此进行调查:

https://docs.docker.com/compose/startup-order/

这是一个简单实用的解决方案,在映像中有一个额外的脚本,该脚本首先将等待与数据库的连接,然后它将启动实际的启动脚本。

希望这有帮助。

相关内容

最新更新