Vérifier si le service MySQL d'un conteneur Docker est prêt
Publié le 03/09/2020 • Actualisé le 03/09/2020
Dans le bout de code précédent nous avons vu comment faire pour un service Postgres; cette fois-ci cela concernera MySQL. Le processus est similaire mais il y a une légère différence puisqu'il n'existe pas d'équivalent à pg_isready
pour MySQL. Donc nous devons chercher dans le résultat de la commande mysqladmin ping
pour voir si le service est en vie (alive). Changez le paramètre sb-db
pour le nom de votre conteneur Docker MySQL. Jetez un coup d'œil à mon Makefile complet pour voir comment j'appelle ce script dans la cible run
.
#!/bin/sh
# https://stackoverflow.com/q/42567475/633864
seconds=1
until docker container exec -it strangebuzz-db-1 mysqladmin -h 127.0.0.1 ping -P 3306 -proot | grep "mysqld is alive" ; do
>&2 echo "MySQL is unavailable - waiting for it... 😴 ($seconds)"
sleep 1
seconds=$(expr $seconds + 1)
done
sleep 1
Plus sur Stackoverflow Lire la doc Snippet aléatoire