当前位置: 首页 > 知识库问答 >
问题:

使用Linux grep检查docker-compose服务是否正常[重复]

翟俊远
2023-03-14
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/logs/startup.log。如果日志文件中包含“database initialized successful”文本,则后台服务就绪,webapi服务可以安全启动。我可以使用Linux grep函数来检查我的日志文件是否包含这个特定的文本。但我不知道如何用Docker-Compose来完成这件事。

我做了一些研究,在docker-compose中有一个healthcheck属性可用,但我不太熟悉它。

有人能帮帮我吗?

共有1个答案

尹兴生
2023-03-14

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

但也许这对你来说不是正确的解决方案。我建议对此进行调查:

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

 类似资料:
  • 我试图确保在db容器启动并准备接受连接之前,我的应用程序容器不会运行迁移/启动。 所以我决定使用healthcheck并依赖于docker compose file v2中的选项。 在应用程序中,我有以下内容 另一方面,db有以下健康检查 我尝试了一些方法,比如: 确保创建了db目录 获取mysql版本: Ping管理员(将db容器标记为正常,但似乎不是有效的测试) 有人有解决办法吗?

  • 检查是否能访问,检查数据库状态,检查MQ状态,检查其他模块是否正常

  • 如果不安装文本编辑程序或集成开发环境,是否有可能测试xdebug是否工作,即它是否可以调试php代码? phpinfo()中出现的唯一部分xdebug如下所示: 解析的其他. ini文件 /etc/php5/apache2/conf.d/mysql.ini, /etc/php5/apache2/conf.d/mysqli.ini, /etc/php5/apache2/conf.d/pdo.ini,

  • 问题内容: 我一直在做一些关于CoreLocation的研究。最近,我遇到了一个问题,该问题已在其他地方解决,但在Objective C和iOS 8中已涵盖。 我觉得这有点愚蠢,但是如何在iOS 9上检查是否使用swift启用了定位服务? 在iOS 7(甚至可能是8?)上,您可以使用,但是在为iOS 9编译时似乎无法正常工作。 那我该怎么做呢? 谢谢! 问题答案: 将添加到您的类继承中,然后可以进

  • 我正在使用: null 协商超时40000 使用Phoenix queryserver和./sqlline-thin.py(从任何机器上,甚至从SQuirrel上)都可以很好地工作。 因此,我的问题是,我如何检查凤凰城是否与HBase安装良好? 也可能只是动物园管理员的问题? 谢谢,

  • 前文提到的Dockerfile 可以让用户管理一个单独的容器,那幺如果我要管理多个容器呢,例如:我需要管理一个Web应用的同时还要加上其后端的数据库服务容器呢?Compose就是这样的一个工具。让我们看下官网对Compose的定义: Compose 是一个用于定义和运行多容器的Docker应用的工具。使用Compose,你可以在一个配置文件(yaml格式)中配置你应用的服务,然后使用一个命令,即可