version: "3.9" services: db: image: postgres:16-alpine container_name: zillow_db restart: unless-stopped environment: POSTGRES_USER: zillow_user POSTGRES_PASSWORD: zillow_pass POSTGRES_DB: zillow_db ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U zillow_user -d zillow_db"] interval: 10s timeout: 5s retries: 5 api: build: . container_name: zillow_api restart: unless-stopped depends_on: db: condition: service_healthy env_file: - .env environment: DATABASE_URL: postgresql+asyncpg://zillow_user:zillow_pass@db:5432/zillow_db SYNC_DATABASE_URL: postgresql+psycopg2://zillow_user:zillow_pass@db:5432/zillow_db ports: - "8000:8000" volumes: - .:/app command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload volumes: postgres_data: