49 lines
1.7 KiB
YAML
49 lines
1.7 KiB
YAML
# 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"
|