Vérifier si le service Postgres d'un conteneur Docker est prêt
Publié le 30/08/2020 • Actualisé le 30/08/2020
Dans ce bout de code, nous allons voir comment attendre que le service Postgres d'un conteneur Docker soit prêt avant de l'utiliser. C'est pour éviter ce genre d'erreurs : An exception occurred in driver: SQLSTATE[08006] [7] server closed the connection unexpectedly. Donc, avant d'utiliser Doctrine pour créer une base de données ou de charger des données de développement, nous allons appeler le script bash suivant (on peut le nommer wait-for-postgres.sh). Il va lancer l'exécutable pg_isready jusqu'à ce qu'il retourne OK. Dans un makefile, il doit être appelé juste après le docker-compose up. Remplacez phpquiz-postgres par le nom de votre conteneur Docker. J'utilise ce script dans le projet phpquiz, jetez un coup d'œil au dépôt public GitHub.
#!/bin/sh
# https://stackoverflow.com/q/46516584/633864
until docker container exec -it phpquiz-postgres pg_isready; do
>&2 echo "Postgres is unavailable - waiting for it... 😴"
sleep 1
done
Plus sur Stackoverflow Lire la doc Plus sur le web Snippet aléatoire
A vous de jouer !
Ces articles vous ont été utiles ? Vous pouvez m'aider à votre tour de plusieurs manières : (cliquez sur le lien "reply" dans à droite pour me contacter )
- Me remonter des erreurs ou typos.
- Me remonter des choses qui pourraient être améliorées.
- Aimez et repostez !
- Suivez moi sur Bluesky 🦋
- Inscrivez-vous au flux RSS.
- Cliquez sur les boutons Plus sur Stackoverflow pour me faire gagner des badges "annonceur" 🏅.
Merci et à très bientôt sur Strangebuzz ! 😉