From 21140d3477c048ad566b66ab1d130fbd5ad77291 Mon Sep 17 00:00:00 2001 From: Aaro Koivukangas Date: Thu, 16 Oct 2025 15:29:18 +0300 Subject: [PATCH] changed postgres_url to db, user, password etc --- docker-compose.yaml | 30 +++++++++++++++++++++++++----- flaskr/database.py | 16 +++++++++++++++- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 482e67f..20ec895 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,4 +1,3 @@ -version: "2" services: flask: build: @@ -7,12 +6,33 @@ services: # command: sh -c "gunicorn -w 4 flaskr:app -b 0.0.0.0:5000 --access-logfile '-' --error-logfile '-'" # command: sh -c "ls" ports: - - "8200:5000" + - "5000:5000" volumes: - .:/app env_file: .env environment: - - POSTGRES_URL + - POSTGRES_DB + - POSTGRES_PORT + - POSTGRES_HOST + - POSTGRES_USER + - POSTGRES_PASSWORD + # extra_hosts: + # - "host.docker.internal:host-gateway" + depends_on: + - db - extra_hosts: - - "host.docker.internal:host-gateway" + db: + image: postgres:16-alpine + volumes: + - ./data/:/var/lib/postgresql/data + environment: + - POSTGRES_DB=timetrials-db + - POSTGRES_PORT=5432 + - POSTGRES_HOST=db + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + healthcheck: + test: pg_isready -U postgres -d timetrials-db + interval: 10s + timeout: 3s + retries: 3 diff --git a/flaskr/database.py b/flaskr/database.py index 01f40eb..aeb32ac 100644 --- a/flaskr/database.py +++ b/flaskr/database.py @@ -3,8 +3,22 @@ from flaskr import app from flask_sqlalchemy import SQLAlchemy from random import randint +if not getenv("POSTGRES_URL") or (getenv("POSTGRES_URL") and not getenv("POSTGRES_URL").startswith("postgresql://")): + postgres_host = getenv("POSTGRES_HOST") + postgres_db = getenv("POSTGRES_DB") + postgres_port = getenv("POSTGRES_PORT") + postgres_user = getenv("POSTGRES_USER") + postgres_password = getenv("POSTGRES_PASSWORD") + postgres_variables = [postgres_host, postgres_db, postgres_port, postgres_user, postgres_password] + + for var in postgres_variables: + if not var: + raise ValueError("All environment variables not set") + + app.config["SQLALCHEMY_DATABASE_URI"] = f"postgresql://{postgres_user}:{postgres_password}@{postgres_host}:{postgres_port}/{postgres_db}" +else: + app.config["SQLALCHEMY_DATABASE_URI"] = getenv("POSTGRES_URL") -app.config["SQLALCHEMY_DATABASE_URI"] = getenv("POSTGRES_URL") db = SQLAlchemy(app)