services: prometheus: image: prom/prometheus:latest container_name: prometheus 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 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 ports: - "3100:3100" command: -config.file=/etc/loki/local-config.yaml volumes: - ./loki-config.yaml:/etc/loki/local-config.yaml - /opt/loki/wal:/wal - /opt/loki/chunks:/loki/chunks - /opt/loki/index:/loki/index networks: - observability promtail: image: grafana/promtail:2.8.2 container_name: promtail 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