version: '3.8' services: # Backend FastAPI Service backend: build: context: . dockerfile: Dockerfile ports: - "3454:3454" volumes: - .:/app environment: - PYTHONUNBUFFERED=1 - API_BASE_URL=http://localhost:3454/api restart: unless-stopped command: ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "3454"] healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3454/"] interval: 30s timeout: 10s retries: 3 # Frontend Gradio Service frontend: build: context: . dockerfile: Dockerfile ports: - "7860:7860" volumes: - .:/app environment: - PYTHONUNBUFFERED=1 - API_BASE_URL=http://backend:3454/api restart: unless-stopped command: ["python", "app.py"] depends_on: - backend # All-in-one service (alternative) app: build: context: . dockerfile: Dockerfile ports: - "3454:3454" - "7860:7860" volumes: - .:/app environment: - PYTHONUNBUFFERED=1 - API_BASE_URL=http://localhost:3454/api restart: unless-stopped command: ["bash", "start.sh"] profiles: - "all-in-one"