version: '3.8' services: prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped volumes: - ./monitoring/prometheus/:/etc/prometheus/ - prometheus_data:/prometheus 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" networks: - monitoring-network grafana: image: grafana/grafana:latest container_name: grafana restart: unless-stopped volumes: - grafana_data:/var/lib/grafana - ./monitoring/grafana/provisioning/:/etc/grafana/provisioning/ environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin - GF_USERS_ALLOW_SIGN_UP=false ports: - "3000:3000" depends_on: - prometheus networks: - monitoring-network alertmanager: image: prom/alertmanager:latest container_name: alertmanager restart: unless-stopped volumes: - ./monitoring/alertmanager/:/etc/alertmanager/ command: - '--config.file=/etc/alertmanager/config.yml' - '--storage.path=/alertmanager' ports: - "9093:9093" networks: - monitoring-network networks: monitoring-network: driver: bridge volumes: prometheus_data: grafana_data: