From 6974cca5145348f4d172bba98346e920fbb4bb51 Mon Sep 17 00:00:00 2001 From: t0xa Date: Sun, 7 Sep 2025 22:09:03 +0300 Subject: [PATCH] Working with compose and env files --- .env.example | 12 ++++++++++++ .gitignore | 9 ++++++++- compose.override.yaml | 9 ++++++++- compose.yaml | 25 ++++++++++++++++++------- 4 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..713a1ee --- /dev/null +++ b/.env.example @@ -0,0 +1,12 @@ +# PostgreSQL Database Configuration +POSTGRES_DB=your_database_name +POSTGRES_USER=your_username +POSTGRES_PASSWORD=your_secure_password +POSTGRES_HOST=postgres +POSTGRES_PORT=5432 + +# FastAPI Configuration +PYTHONPATH=/app + +# Development settings +DEBUG=true diff --git a/.gitignore b/.gitignore index c340b9d..01f4c65 100644 --- a/.gitignore +++ b/.gitignore @@ -123,11 +123,14 @@ celerybeat.pid *.sage.py # Environments -.env .venv env/ venv/ ENV/ +.env +.env.local +.env.production + env.bak/ venv.bak/ @@ -163,3 +166,7 @@ cython_debug/ #.idea/ pyrightconfig.json + +# Database +*.db +*.sqlite3 diff --git a/compose.override.yaml b/compose.override.yaml index 1a62945..c558717 100644 --- a/compose.override.yaml +++ b/compose.override.yaml @@ -5,4 +5,11 @@ services: fastapi-app: environment: - DEBUG=true - command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/app --log-level debug \ No newline at end of file + command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/app --log-level debug + develop: + watch: + - action: sync + path: ./app + target: /app/app + - action: rebuild + path: ./pyproject.toml diff --git a/compose.yaml b/compose.yaml index 69be1b1..96ec801 100644 --- a/compose.yaml +++ b/compose.yaml @@ -14,10 +14,21 @@ services: environment: - PYTHONPATH=/app command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/app - develop: - watch: - - action: sync - path: ./app - target: /app/app - - action: rebuild - path: ./pyproject.toml + postgres: + image: postgres:15 + environment: + - POSTGRES_DB=fitness_db + - POSTGRES_USER=fitness_user + - POSTGRES_PASSWORD=fitness_password + ports: + - "5432:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U fitness_user -d fitness_db"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + postgres_data: