version: '3.8' services: backup-service: build: context: . dockerfile: Dockerfile container_name: backup-service ports: - "${APP_PORT:-3002}:3002" environment: - DATABASE_URL=postgresql://postgres:password@backup-db:5432/rwa_backup?schema=public - APP_PORT=3002 - APP_ENV=development - SERVICE_JWT_SECRET=${SERVICE_JWT_SECRET} - ALLOWED_SERVICES=identity-service,recovery-service - BACKUP_ENCRYPTION_KEY=${BACKUP_ENCRYPTION_KEY} - BACKUP_ENCRYPTION_KEY_ID=${BACKUP_ENCRYPTION_KEY_ID:-key-v1} - MAX_RETRIEVE_PER_DAY=3 - MAX_STORE_PER_MINUTE=10 depends_on: backup-db: condition: service_healthy networks: - backup-network restart: unless-stopped backup-db: image: postgres:15-alpine container_name: backup-db environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password POSTGRES_DB: rwa_backup volumes: - backup-db-data:/var/lib/postgresql/data ports: - "5433:5432" # Different port to avoid conflict with main db healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 networks: - backup-network restart: unless-stopped volumes: backup-db-data: networks: backup-network: driver: bridge