# Fichier : docker-compose.yml version: '3.8' services: # Le service principal de l'API presidio-api: image: mcr.microsoft.com/presidio-api:latest container_name: presidio-api restart: unless-stopped ports: - "3000" depends_on: # === MODIFICATION IMPORTANTE ICI === presidio-analyzer: condition: service_healthy # Ne démarre que si l'analyzer est "en bonne santé" presidio-anonymizer: condition: service_started # L'anonymizer est simple, on attend juste qu'il démarre environment: PRESIDIO_ANALYZER_SERVICE_URL: http://presidio-analyzer:5001 PRESIDIO_ANONYMIZER_SERVICE_URL: http://presidio-anonymizer:5002 PRESIDIO_API_TIMEOUT: "120" CORS_ORIGINS: "*" # Le service qui détecte les PII presidio-analyzer: build: context: . dockerfile: Dockerfile.analyzer container_name: presidio-analyzer restart: unless-stopped ports: - "5001" # === AJOUT DU BILAN DE SANTÉ (HEALTHCHECK) === healthcheck: # Commande à exécuter pour vérifier la santé. Elle appelle l'endpoint /health. test: ["CMD", "curl", "-f", "http://localhost:5001/health"] interval: 30s # Vérifier toutes les 30 secondes timeout: 10s # Considérer l'échec si la commande prend plus de 10s retries: 5 # Essayer 5 fois avant de déclarer le service comme "unhealthy" start_period: 60s # Ne pas commencer les vérifications avant 60s, pour lui laisser le temps de charger le modèle # Le service qui anonymise presidio-anonymizer: image: mcr.microsoft.com/presidio-anonymizer:latest container_name: presidio-anonymizer restart: unless-stopped ports: - "5002"