chore: enhance docker-compose configuration to support optional local environment overrides

This commit is contained in:
Ashwin 2026-07-27 08:05:38 +05:30
parent fa52fb10d4
commit 32dee0dcff
2 changed files with 31 additions and 8 deletions

View file

@ -189,9 +189,12 @@ docker compose exec backend python manage.py manage_rls --status
The default env vars live in `.env.docker` (committed). To override locally without touching git:
1. Copy `.env.docker` to `.env.docker.local`
2. Edit values as needed
3. Update `env_file` in `docker-compose.yml` to point to `.env.docker.local`
1. Copy `.env.docker` to `.env.docker.local` (gitignored)
2. Edit values as needed — set your own `SECRET_KEY` here, not in `.env.docker`
3. Rebuild/restart: `docker compose up --build`
Every service loads `.env.docker` first and then `.env.docker.local` if it exists, so
your overrides win. No edits to `docker-compose.yml` are needed.
## Project Structure

View file

@ -1,7 +1,11 @@
services:
db:
image: postgres:16-alpine
env_file: .env.docker
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- postgres_data:/var/lib/postgresql/data
- ./docker/postgres/init-rls-user.sql:/docker-entrypoint-initdb.d/init-rls-user.sql:ro
@ -27,7 +31,11 @@ services:
build:
context: .
dockerfile: Dockerfile
env_file: .env.docker
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./backend:/app
- ./docker/backend/entrypoint.sh:/entrypoint.sh:ro
@ -44,7 +52,11 @@ services:
build:
context: .
dockerfile: Dockerfile
env_file: .env.docker
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./backend:/app
depends_on:
@ -58,7 +70,11 @@ services:
build:
context: .
dockerfile: Dockerfile
env_file: .env.docker
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./backend:/app
depends_on:
@ -72,7 +88,11 @@ services:
build:
context: ./frontend
dockerfile: Dockerfile
env_file: .env.docker
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./frontend:/app
- frontend_node_modules:/app/node_modules