services: db: image: postgres:16-alpine environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: openccb ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data cms-service: build: context: . dockerfile: services/cms-service/Dockerfile environment: DATABASE_URL: postgresql://user:password@db:5432/openccb_cms ports: - "3001:3001" volumes: - uploads_data:/app/uploads depends_on: - db lms-service: build: context: . dockerfile: services/lms-service/Dockerfile environment: DATABASE_URL: postgresql://user:password@db:5432/openccb_lms ports: - "3002:3002" depends_on: - db studio: build: context: ./web/studio dockerfile: Dockerfile ports: - "3000:3000" environment: NEXT_PUBLIC_CMS_API_URL: http://localhost:3001 experience: build: context: ./web/experience dockerfile: Dockerfile ports: - "3003:3003" environment: NEXT_PUBLIC_LMS_API_URL: http://localhost:3002 whisper: image: fedirz/faster-whisper-server:latest-cuda ports: - "8000:8000" volumes: - whisper_cache:/root/.cache/huggingface environment: - WHISPER_MODEL=medium - DEVICE=cuda # GPU support for RTX 2070 Super deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [ gpu ] e2e: build: context: ./e2e environment: - STUDIO_URL=http://studio:3000 - EXPERIENCE_URL=http://experience:3003 depends_on: - studio - experience volumes: - ./e2e/tests:/e2e/tests - ./e2e/playwright-report:/e2e/playwright-report profiles: [ "test" ] volumes: postgres_data: uploads_data: whisper_cache: