version: '3.8' services: # Gateway/Orquestrador (porta 8080) gateway: build: context: ./gateway dockerfile: Dockerfile ports: - "8080:8080" depends_on: - whisper - llm - tts - musetalk environment: - WHISPER_URL=http://whisper:5001 - LLM_URL=http://llm:5002 - TTS_URL=http://tts:5003 - MUSETALK_URL=http://musetalk:5004 networks: - microservices restart: unless-stopped # Whisper Service (STT - porta 5001) whisper: build: context: ./services/whisper dockerfile: Dockerfile ports: - "5001:5001" networks: - microservices restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5001/health"] interval: 10s timeout: 5s retries: 3 # LLM Service (porta 5002) llm: build: context: ./services/llm dockerfile: Dockerfile ports: - "5002:5002" networks: - microservices restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5002/health"] interval: 10s timeout: 5s retries: 3 # TTS Service (porta 5003) tts: build: context: ./services/tts dockerfile: Dockerfile ports: - "5003:5003" networks: - microservices restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5003/health"] interval: 10s timeout: 5s retries: 3 # MuseTalk Service (Avatar - porta 5004) musetalk: build: context: ./services/musetalk dockerfile: Dockerfile ports: - "5004:5004" networks: - microservices restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5004/health"] interval: 10s timeout: 5s retries: 3 networks: microservices: driver: bridge