services: # Data Collector Service data-collector: build: ./vigil_data_collector container_name: vigil-data-collector ports: - '8000:8000' env_file: - ./vigil_data_collector/.env networks: - vigil-network healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:8000/health'] interval: 30s timeout: 10s retries: 3 restart: unless-stopped # ML Prediction Service ml-service: build: ./vigil-ml-layer container_name: vigil-ml-service ports: - '8001:8001' volumes: - ./vigil-ml-layer/models:/app/models - ./vigil-ml-layer/artifacts:/app/artifacts environment: - PYTHONUNBUFFERED=1 networks: - vigil-network depends_on: - data-collector healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:8001/health'] interval: 30s timeout: 10s retries: 3 restart: unless-stopped # Intelligent Router Service intelligent-router: build: ./vigil-intelligent-router container_name: vigil-intelligent-router ports: - '8080:8080' env_file: - ./vigil-intelligent-router/.env environment: # Override service URLs for Docker networking (not secrets) - ML_SERVICE_URL=http://ml-service:8001 - DATA_COLLECTOR_URL=http://data-collector:8000 - METRICS_ENDPOINT=/api/v1/metrics/history networks: - vigil-network depends_on: - data-collector - ml-service healthcheck: test: ['CMD', 'wget', '--spider', '-q', 'http://localhost:8080/health'] interval: 30s timeout: 10s retries: 3 restart: unless-stopped networks: vigil-network: driver: bridge