diff --git a/docker-compose.yml b/docker-compose.yml index abbcfde..08fee79 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,5 +20,11 @@ services: ports: - "8000:8000" command: ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] + healthcheck: + test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/', timeout=2)\""] + interval: 30s + timeout: 5s + retries: 3 + start_period: 10s volumes: pgdata: diff --git a/src/main.py b/src/main.py index 053a57f..a046746 100644 --- a/src/main.py +++ b/src/main.py @@ -40,6 +40,13 @@ if "API_KEY" in ENV: else: logger.error("API_KEY not found in .env file... cannot continue.") exit() +try: + with psycopg.connect(connect_statement) as conn: + with conn.cursor() as cur: + cur.execute("SELECT 1") +except Exception as error: + logger.error("Failed to connect to PostgreSQL: {}", error) + exit() with psycopg.connect(connect_statement) as conn: with conn.cursor() as cur: