#!/bin/sh maxcounter=${MAX_DB_CONN_ATTEMPTS:-60} if [ "$maxcounter" -le 0 ]; then echo "Skipping wait-for-it.sh..." exit 0 fi if [ -z "$BACKEND" ]; then echo "ERROR: variable 'BACKEND' must be set. Exiting." exit 1 fi # wait until the database is really available echo "Trying to connect to $BACKEND (timeout=${maxcounter}s)" echo "" ready () { if [ "$BACKEND" = "mysql" ]; then mysql \ --host="$DB_HOST" \ --protocol TCP \ -u"$DB_USER" \ -p"$DB_PASSWORD" \ -e "show databases;" > /dev/null 2>&1 else PGPASSWORD="$DB_PASSWORD" psql \ -h "$DB_HOST" \ -U "$DB_USER" \ -c "select * from pg_database" > /dev/null 2>&1 fi return $? } counter=1 while ! ready; do counter=`expr $counter + 1` if [ $counter -gt $maxcounter ]; then >&2 echo "ERROR: Could not connect to $BACKEND after $MAX_DB_CONN_ATTEMPTS seconds; Exiting." exit 1 fi; sleep 1 done echo "-=------------------------------------------------------" echo "-=------------------------------------------------------" echo "Connected to $BACKEND!" echo "-=------------------------------------------------------" echo "-=------------------------------------------------------"