• Mémo Faire attendre Docker l'installation complète de la base de données

  • Docker waits for database to be running

On lance un docker-compose, on veut importer des données dans la base et :

psycopg2.OperationalError: server closed the connection unexpectedly

Le docker n'est pas prêt (la même chose existe bien entendu pour MySQL).

Dans un init-db.sh, les variables d'environnement se situant dans un fichier .env:

#!/bin/bash

# Export .env file
if [ -f ./.env ]; then
  export $(cat ./.env | sed 's/#.*//g' | xargs)
fi

until psql -h $DB_HOST -U $DB_USER -d $DB_NAME -c '\l' >/dev/null 2>&1; do
  echo "Postgres is unavailable - sleeping"
  sleep 1
done

echo "Reload database..."
for FILENAME in ./dumps/*.sql; do
  echo -e "Import $FILENAME"
  psql -h $DB_HOST -U $DB_USER -d $DB_NAME <$FILENAME >/dev/null 2>&1 || echo "Postgresql database import failed"
done


24 janvier 2021 21:14