services: postgres-django: image: postgres:16-alpine environment: POSTGRES_USER: benchmark POSTGRES_PASSWORD: benchmark POSTGRES_DB: django_benchmark healthcheck: test: ["CMD-SHELL", "pg_isready -U benchmark -d django_benchmark"] interval: 5s timeout: 5s retries: 10 postgres-phoenix: image: postgres:16-alpine environment: POSTGRES_USER: benchmark POSTGRES_PASSWORD: benchmark POSTGRES_DB: phoenix_benchmark healthcheck: test: ["CMD-SHELL", "pg_isready -U benchmark -d phoenix_benchmark"] interval: 5s timeout: 5s retries: 10 redis: image: redis:7-alpine healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 10 django: build: ./django ports: - "8001:8000" environment: DATABASE_URL: postgresql://benchmark:benchmark@postgres-django/django_benchmark REDIS_URL: redis://redis:6379/0 SECRET_KEY: benchmark-secret-key-not-for-production-use-only ALLOWED_HOSTS: "*" DEBUG: "true" depends_on: postgres-django: condition: service_healthy redis: condition: service_healthy restart: unless-stopped phoenix: build: ./phoenix ports: - "8002:4000" environment: DATABASE_URL: postgresql://benchmark:benchmark@postgres-phoenix/phoenix_benchmark SECRET_KEY_BASE: "benchmark_secret_key_base_needs_64_chars_minimum_for_phoenix_liveview_signing_ok" PHX_HOST: localhost MIX_ENV: prod depends_on: postgres-phoenix: condition: service_healthy restart: unless-stopped benchmark: profiles: - bench build: ./benchmark environment: DJANGO_URL: http://django:8000 PHOENIX_URL: http://phoenix:4000 ITERATIONS: "10" WARMUP: "2" depends_on: - django - phoenix