version: '3.8' services: security-monitor: build: context: . dockerfile: Dockerfile container_name: security-monitor runtime: nvidia ports: - "8000:8000" - "9090:9090" volumes: - ./models:/app/models - ./data:/app/data - ./logs:/app/logs - ./config.yaml:/app/config.yaml:ro environment: - CUDA_VISIBLE_DEVICES=0 - CONFIG_PATH=/app/config.yaml restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] prometheus: image: prom/prometheus:v2.45.0 container_name: prometheus ports: - "9091:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.enable-lifecycle' restart: unless-stopped grafana: image: grafana/grafana:10.0.0 container_name: grafana ports: - "3000:3000" volumes: - grafana_data:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning:ro environment: - GF_SECURITY_ADMIN_PASSWORD=admin restart: unless-stopched volumes: prometheus_data: grafana_data: