Files
training-software/docker-compose.yml
Paperclip CTO 581d18c497
All checks were successful
CI Build / Build Container (push) Successful in 9s
CI Quality / Ruff Lint (push) Successful in 9s
CI Security / Bandit + pip-audit (push) Successful in 25s
CI Tests / Django Tests (push) Successful in 41s
CI Tests / OpenAPI Schema (push) Successful in 13s
Fix frontend API defaults for internal Docker networks
2026-05-19 22:20:36 +02:00

135 lines
2.6 KiB
YAML

version: "3.9"
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: