51 lines
1.5 KiB
YAML
51 lines
1.5 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: lilith-video-studio-postgres
|
|
environment:
|
|
POSTGRES_DB: video_studio
|
|
POSTGRES_USER: ${DATABASE_POSTGRES_USER:-lilith}
|
|
POSTGRES_PASSWORD: ${DATABASE_POSTGRES_PASSWORD:-lilith_dev}
|
|
ports:
|
|
- "25470:5432"
|
|
volumes:
|
|
- video_studio_postgres_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${DATABASE_POSTGRES_USER:-lilith} -d video_studio"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
processing-service:
|
|
build:
|
|
context: ./processing-service
|
|
dockerfile: Dockerfile
|
|
container_name: lilith-video-studio-processing
|
|
environment:
|
|
REDIS_URL: ${REDIS_URL:-redis://host.docker.internal:6379/5}
|
|
USE_GPU: ${USE_GPU:-true}
|
|
PYTHONUNBUFFERED: "1"
|
|
ports:
|
|
- "8110:8110"
|
|
volumes:
|
|
# Mount shared media storage so the service can read/write video files
|
|
- ${MEDIA_STORAGE_PATH:-/tmp/lilith-media}:/media
|
|
runtime: nvidia # Remove if GPU not available; set USE_GPU=false
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8110/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s # Allow time for InsightFace model load
|
|
|
|
volumes:
|
|
video_studio_postgres_data:
|