diff --git a/docker-compose.yml b/docker-compose.yml index f4255b8..d63d011 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,10 @@ version: '3.8' services: - # --- LE PORTIER (Point d'entrée pour tes 20 étudiants) --- + # --- LE PORTIER --- gateway: image: nginx:latest + container_name: studio-gateway-1 ports: - "80:80" volumes: @@ -12,12 +13,13 @@ services: - studio-net depends_on: - open-webui + - audio-api # Ajouté ici : Nginx attend que l'audio soit prêt + restart: always - # --- L'INTERFACE (Open WebUI) --- + # --- L'INTERFACE --- open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui - # On ne publie plus le port 3000 vers l'extérieur, Nginx s'en charge en interne environment: - OLLAMA_BASE_URL=http://ollama:11434 - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY:-supersecretkey} @@ -27,7 +29,7 @@ services: - studio-net restart: always - # --- LE CERVEAU (Ollama) --- + # --- LE CERVEAU --- ollama: image: ollama/ollama:latest container_name: ollama @@ -42,29 +44,33 @@ services: - ollama_data:/root/.ollama networks: - studio-net + restart: always - # --- LE SERVICE AUDIO (Ton API) --- + # --- LE SERVICE AUDIO --- audio-api: - build: - context: ./services/audio-api + image: nvcr.io/nvidia/pytorch:23.10-py3 # On utilise une image robuste container_name: audio-api - # On laisse le port 7860 ouvert au cas où tu voudrais tester en direct + working_dir: /app + # On monte le dossier local pour que le script server.py soit trouvé + volumes: + - ./services/audio-api:/app + - ./models:/app/models + - ./outputs:/app/outputs + # L'astuce : On installe Gradio AVANT de lancer le script + command: > + sh -c "pip install --no-cache-dir gradio faster-whisper && python3 server.py" ports: - "7860:7860" deploy: resources: - limits: - memory: 32G # 64 Go de VRAM permet d'être large sur la RAM système aussi reservations: devices: - driver: nvidia count: all capabilities: [gpu] - volumes: - - ./models:/app/models - - ./outputs:/app/outputs networks: - studio-net + restart: always networks: studio-net: