services: db: image: postgres:16-alpine environment: POSTGRES_USER: gogo POSTGRES_PASSWORD: gogo POSTGRES_DB: gogo ports: - "127.0.0.1:5433:5432" # 5433 on the host to avoid clashing with a system postgres volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U gogo"] interval: 5s timeout: 3s retries: 10 app: build: . depends_on: db: condition: service_healthy environment: GOGO_DATABASE_URL: postgresql+psycopg://gogo:gogo@db:5432/gogo env_file: - path: .env required: false ports: - "127.0.0.1:8000:8000" volumes: - recordings:/data/recordings command: > sh -c "alembic upgrade head && uvicorn gogo.main:app --host 0.0.0.0 --port 8000" volumes: pgdata: recordings: