#!/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 "$@"