You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
#!/bin/sh
|
|
|
|
if [[ -z "${PGHOST}" && -z "${MYSQL_HOST}" && -z "${MSSQL_HOST}" ]]; then
|
|
HOST="localhost"
|
|
elif [[ -z "${PGHOST}" && -z "${MSSQL_HOST}" ]]; then
|
|
HOST="${MYSQL_HOST}"
|
|
elif [[ -z "${MSSQL_HOST}" && -z "${MYSQL_HOST}" ]]; then
|
|
HOST="${PGHOST}"
|
|
else
|
|
HOST="${MSSQL_HOST}"
|
|
fi
|
|
|
|
if [[ -z "${PGPORT}" && -z "${MYSQL_TCP_PORT}" && -z "${MSSQL_TCP_PORT}" ]]; then
|
|
PORT="5432"
|
|
elif [[ -z "${PGPORT}" && -z "${MSSQL_TCP_PORT}" ]]; then
|
|
PORT="${MYSQL_TCP_PORT}"
|
|
elif [[ -z "${MSSQL_TCP_PORT}" && -z "${MYSQL_TCP_PORT}" ]]; then
|
|
PORT="${PGPORT}"
|
|
else
|
|
PORT="${MSSQL_TCP_PORT}"
|
|
fi
|
|
|
|
COUNT=0
|
|
|
|
function fib() {
|
|
if [ $1 -le 0 ]; then
|
|
echo 0
|
|
elif [ $1 -eq 1 ]; then
|
|
echo 1
|
|
else
|
|
echo $(( $(fib $(($1 - 1)) ) + $(fib $(($1 - 2)) ) ))
|
|
fi
|
|
}
|
|
|
|
echo "[INFO] Waiting for Database to become ready..."
|
|
|
|
until nc -z -w 2 $HOST $PORT; do
|
|
COUNT=$((COUNT + 1));
|
|
SLEEP_TIME=$(fib $COUNT);
|
|
echo "[WARNING] Unable to access database! Sleeping $SLEEP_TIME seconds. Waiting for $HOST to listen on $PORT...";
|
|
sleep $SLEEP_TIME;
|
|
done;
|
|
|
|
echo "[INFO] Database OK ✓"
|
|
|