services: app: build: context: ./src dockerfile: Dockerfile container_name: veille-reglementaire restart: unless-stopped environment: - NODE_ENV=production - PORT=3000 - DATABASE_URL=mysql://veille_user:VeilleDB2026Secure!@veille-db:3306/veille_reglementaire - JWT_SECRET=veille-reglementaire-jwt-secret-2026-recette - VITE_APP_ID=veille-reglementaire depends_on: veille-db: condition: service_healthy networks: - web - veille-internal labels: - "traefik.enable=true" # Route HTTPS via veille.recette.santinova-soft.org - "traefik.http.routers.veille-secure.rule=Host(`veille.recette.santinova-soft.org`)" - "traefik.http.routers.veille-secure.entrypoints=websecure" - "traefik.http.routers.veille-secure.tls=true" - "traefik.http.routers.veille-secure.tls.certresolver=letsencrypt" - "traefik.http.routers.veille-secure.service=veille-svc" # Service - "traefik.http.services.veille-svc.loadbalancer.server.port=3000" - "traefik.docker.network=web" veille-db: image: mysql:8.0 container_name: veille-db restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=VeilleRootDB2026! - MYSQL_DATABASE=veille_reglementaire - MYSQL_USER=veille_user - MYSQL_PASSWORD=VeilleDB2026Secure! volumes: - veille-db-data:/var/lib/mysql networks: - veille-internal healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pVeilleRootDB2026!"] interval: 10s timeout: 5s retries: 5 start_period: 30s volumes: veille-db-data: networks: web: external: true veille-internal: driver: bridge