version: "3.8" services: prometheus: image: prom/prometheus:latest container_name: prometheus-observability volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' ports: - "9090:9090" networks: - observability grafana: image: grafana/grafana:latest container_name: grafana-observability ports: - "3000:3000" volumes: - grafana-data:/var/lib/grafana environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin networks: - observability depends_on: - loki loki: image: grafana/loki:2.8.2 container_name: loki-observability ports: - "3100:3100" command: -config.file=/etc/loki/local-config.yaml volumes: - ./loki-config.yaml:/etc/loki/local-config.yaml - ./loki-wal:/wal - ./loki-chunks:/loki/chunks - ./loki-index:/loki/index networks: - observability promtail: image: grafana/promtail:2.8.2 container_name: promtail-observability volumes: - ./promtail-config.yaml:/etc/promtail/config.yaml - /var/lib/docker/containers:/var/lib/docker/containers:ro - /var/log:/var/log:ro command: - -config.file=/etc/promtail/config.yaml networks: - observability volumes: grafana-data: networks: observability: driver: bridge