#!/usr/bin/env bash set -euo pipefail cd /app/company_site wait_for_database() { if [[ -z "${DATABASE_URL:-}" && -z "${DB_HOST:-}" ]]; then return 0 fi echo "Waiting for database..." for _ in $(seq 1 30); do if uv run python - <<'PY' import os import sys os.environ.setdefault("DJANGO_SETTINGS_MODULE", "company_site.settings") import django from django.db import connections from django.db.utils import OperationalError django.setup() try: connections["default"].ensure_connection() except OperationalError: sys.exit(1) PY then echo "Database is ready." return 0 fi sleep 2 done echo "Database did not become ready in time." >&2 exit 1 } wait_for_database uv run python manage.py migrate --noinput uv run python manage.py collectstatic --noinput exec uv run gunicorn company_site.wsgi:application \ --bind "${GUNICORN_BIND:-0.0.0.0:8000}" \ --workers "${GUNICORN_WORKERS:-2}"