Как ждать, пока услуги не будут готовы - PullRequest
0 голосов
/ 25 июня 2018

Я настраивал конвейер 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.Как я могу это реализовать?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Документы Docker упоминают этот скрипт для управления проверками готовности контейнера: https://github.com/vishnubob/wait-for-it

Я также использую этот скрипт, совместимый с Alpine: https://github.com/eficode/wait-for

0 голосов
/ 25 июня 2018

Вы можете свернуться с этими службами, чтобы проверить, живы они или нет. Для Redis вы также можете сделать https://redis.io/commands/ping

...