version: '3.8' services: postgres: image: postgres:15-alpine environment: POSTGRES_DB: freight POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d freight"] interval: 10s timeout: 5s retries: 5 fastapi: build: context: . dockerfile: Dockerfile.api environment: DATABASE_URL: postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/freight SUPABASE_URL: ${SUPABASE_URL} SUPABASE_ANON_KEY: ${SUPABASE_ANON_KEY} ports: - "8000:8000" depends_on: postgres: condition: service_healthy deploy: replicas: 2 pwa: build: context: . dockerfile: Dockerfile.pwa environment: NEXT_PUBLIC_SUPABASE_URL: ${SUPABASE_URL} NEXT_PUBLIC_SUPABASE_ANON_KEY: ${SUPABASE_ANON_KEY} ports: - "3000:3000" deploy: replicas: 2 volumes: postgres_data: