如何等到服务准备就绪

时间:2018-06-25 11:38:46

标签: linux shell docker jenkins sh

我一直在使用docker映像设置Jenkins管道。现在,我需要运行各种服务,例如MySQL,Redis,Memcache,Beanstalkd和Elasticsearch。为了等到MySQL准备就绪,我正在使用以下命令:

sh "while ! mysqladmin ping -u root -h mysqlhost ; do sleep 1; done"
sh 'echo MySQL server is up and running'

mysqlhost是我为容器提供的主机名。同样,我需要检查并等待Redis, Memcached, Beanstalkd and Elasticsearch。但是对MySQL所做的操作无法对这些服务执行ping操作。我该如何实现呢?

2 个答案:

答案 0 :(得分:1)

Docker docs提到了此脚本来管理容器准备情况检查:https://github.com/vishnubob/wait-for-it

我还使用了与Alpine兼容的产品: https://github.com/eficode/wait-for

答案 1 :(得分:0)

您可以对此服务进行卷曲,以检查它们是否还活着。 对于redis,您还可以执行https://redis.io/commands/ping