Files
training-software/docker-compose.yml
Paperclip CTO 1bb4f4c3e3
All checks were successful
CI Build / Build Container (push) Successful in 5s
CI Quality / Ruff Lint (push) Successful in 7s
CI Security / Bandit + pip-audit (push) Successful in 26s
CI Tests / Django Tests (push) Successful in 39s
CI Tests / OpenAPI Schema (push) Successful in 13s
Fix docker env defaults and clarify frontend entrypoints
2026-05-19 22:29:47 +02:00

133 lines
2.6 KiB
YAML

services:
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: training
POSTGRES_USER: training
POSTGRES_PASSWORD: training
expose:
- "5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U training"]
interval: 5s
timeout: 5s
retries: 10
networks:
- backend
redis:
image: redis:7-alpine
expose:
- "6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 10
networks:
- backend
web:
build:
context: .
args:
REQUIREMENTS_FILE: local.txt
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
env_file:
- .env
environment:
DJANGO_SETTINGS_MODULE: config.settings.local
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- backend
- edge
celery:
build:
context: .
args:
REQUIREMENTS_FILE: local.txt
command: celery -A config worker --loglevel=info
volumes:
- .:/app
env_file:
- .env
environment:
DJANGO_SETTINGS_MODULE: config.settings.local
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
certificate-renderer:
condition: service_started
networks:
- backend
celery-beat:
build:
context: .
args:
REQUIREMENTS_FILE: local.txt
command: celery -A config beat --loglevel=info --scheduler django_celery_beat.schedulers:DatabaseScheduler
volumes:
- .:/app
env_file:
- .env
environment:
DJANGO_SETTINGS_MODULE: config.settings.local
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- backend
frontend:
build:
context: .
dockerfile: frontend/Dockerfile
depends_on:
- web
environment:
FRONTEND_API_BASE_URL: ${FRONTEND_API_BASE_URL:-}
ports:
- "${FRONTEND_PORT:-8080}:80"
networks:
- edge
certificate-renderer:
build:
context: .
dockerfile: certificates/Dockerfile.renderer
environment:
CERTIFICATE_RENDERER_TOKEN: ${CERTIFICATE_RENDERER_TOKEN:-}
expose:
- "8090"
read_only: true
tmpfs:
- /tmp
cap_drop:
- ALL
networks:
- backend
volumes:
postgres_data:
networks:
backend:
internal: true
edge: