vbv/compose/production/django/entrypoint

43 lines
868 B
Bash

#!/bin/bash
set -o errexit
set -o pipefail
set -o nounset
if [ -z "${VBV_POSTGRES_USER}" ]; then
base_postgres_image_default_user='postgres'
export VBV_POSTGRES_USER="${base_postgres_image_default_user}"
fi
export VBV_DATABASE_URL="postgres://${VBV_POSTGRES_USER}:${VBV_POSTGRES_PASSWORD}@${VBV_POSTGRES_HOST}:${VBV_POSTGRES_PORT}/${VBV_POSTGRES_DB}"
postgres_ready() {
python << END
import sys
import psycopg2
try:
psycopg2.connect(
dbname="${VBV_POSTGRES_DB}",
user="${VBV_POSTGRES_USER}",
password="${VBV_POSTGRES_PASSWORD}",
host="${VBV_POSTGRES_HOST}",
port="${VBV_POSTGRES_PORT}",
)
except psycopg2.OperationalError:
sys.exit(-1)
sys.exit(0)
END
}
until postgres_ready; do
>&2 echo 'Waiting for PostgreSQL to become available...'
sleep 1
done
>&2 echo 'PostgreSQL is available'
exec "$@"