version: '3.8' services: transformer-api: build: context: . dockerfile: Dockerfile ports: - "8000:8000" environment: - MODEL_PATH=${MODEL_PATH:-distilbert-base-uncased-finetuned-sst-2-english} - TRANSFORMERS_CACHE=/app/cache volumes: - model_cache:/app/cache - ./results:/app/results:ro # Mount trained models restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 60s # Optional: Redis for caching predictions redis: image: redis:7-alpine ports: - "6379:6379" command: redis-server --appendonly yes volumes: - redis_data:/data restart: unless-stopped # Optional: Monitoring with Prometheus prometheus: image: prom/prometheus:latest ports: - "9090:9090" volumes: - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' restart: unless-stopped volumes: model_cache: redis_data: prometheus_data: