| 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: | |