version: '3.8' networks: monitoring: driver: bridge volumes: grafana_data: {} prometheus_data: {} services: exporter: build: . ports: - "8000:8000" - "8001:8001" expose: - 8080 networks: - monitoring volumes: - type: bind source: ${PWD}/${CONFIG_FILE_PATH} target: /config/config.yml - type: bind source: ${PWD}/${VALIDATION_FILE_PATH} target: /config/validation.yml prometheus: image: prom/prometheus:latest logging: driver: none container_name: prometheus restart: unless-stopped volumes: - prometheus_data:/prometheus - ./config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--web.enable-lifecycle' ports: - "9090:9090" expose: - 9090 networks: - monitoring grafana: logging: driver: none image: grafana/grafana-enterprise:8.4.1 container_name: grafana volumes: - grafana_data:/var/lib/grafana - ./config/grafana/provisioning:/etc/grafana/provisioning environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin - GF_USERS_ALLOW_SIGN_UP=false restart: unless-stopped ports: - "3000:3000" expose: - 3000 networks: - monitoring