services: backend: build: context: ./backend dockerfile: Dockerfile environment: - ASPNETCORE_URLS=http://+:8080 - ConnectionStrings__Default=Data Source=/data/trajets.db # La clé ORS est fournie par l'environnement / .env — jamais intégrée à l'image. - ORS__ApiKey=${ORS_API_KEY:-} volumes: - trajets-data:/data restart: unless-stopped # Healthcheck sur GET /health. curl est installé dans l'image backend (voir Dockerfile). healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] interval: 30s timeout: 5s retries: 3 start_period: 20s frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "8080:80" # hôte 8080 -> nginx (frontend) depends_on: backend: condition: service_healthy restart: unless-stopped volumes: trajets-data: # persistance SQLite au-delà du cycle de vie des conteneurs