| services: | |
| db: | |
| image: postgres:16 | |
| environment: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} | |
| POSTGRES_DB: frenchcoach | |
| volumes: | |
| - pgdata:/var/lib/postgresql/data | |
| - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql | |
| ports: | |
| - "5432:5432" | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U postgres"] | |
| interval: 5s | |
| timeout: 5s | |
| retries: 5 | |
| app: | |
| build: . | |
| ports: | |
| - "7860:7860" | |
| env_file: .env | |
| environment: | |
| # Override DATABASE_URL so the app uses the 'db' service name inside Docker | |
| DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/frenchcoach | |
| depends_on: | |
| db: | |
| condition: service_healthy | |
| # Custom-UI app (UI_UPGRADE_PLAN.md). This is the Space entrypoint | |
| # (app_file: app_custom.py in README.md); locally it runs alongside the | |
| # themed-Blocks `app` service, so it's pinned off the default 7860 port. | |
| app-custom: | |
| build: . | |
| command: python app_custom.py | |
| ports: | |
| - "7861:7861" | |
| env_file: .env | |
| environment: | |
| DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/frenchcoach | |
| CUSTOM_UI_PORT: "7861" | |
| depends_on: | |
| db: | |
| condition: service_healthy | |
| volumes: | |
| pgdata: | |