version: '3.8' services: knet: build: . ports: - "54321:54321" environment: - API_TOKEN=${API_TOKEN:-your-default-token} - API_USERNAME=${API_USERNAME:-api} - BUILD_NUMBER=${BUILD_NUMBER:-dev} networks: - monitoring prometheus: image: prom/prometheus:latest container_name: knet-prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--storage.tsdb.retention.time=30d' - '--storage.tsdb.retention.size=10GB' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--web.enable-lifecycle' - '--web.enable-admin-api' networks: - monitoring restart: unless-stopped grafana: image: grafana/grafana:latest container_name: knet-grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin} volumes: - grafana_data:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning networks: - monitoring restart: unless-stopped depends_on: - prometheus networks: monitoring: driver: bridge volumes: prometheus_data: grafana_data: