version: '3.9'
x-logging:
&default-logging
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
tag: "{{.Name}}"
services:
grafana:
image: grafana/grafana:10.4.3
container_name: grafana
ports:
- 3000:3000
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_USERS_DEFAULT_THEME=light
volumes:
- ./configs/datasources.yaml:/etc/grafana/provisioning/datasources/provisioning-datasources.yaml:ro
depends_on:
- tempo
networks:
- traces
logging: *default-logging
tempo:
image: grafana/tempo:2.4.2
container_name: tempo
ports:
- 3200:3200 - 9095:9095 - 4318:4318 - 4317:4317 volumes:
- ./configs/tempo.yaml:/etc/tempo-local.yaml
command: ["-config.file=/etc/tempo-local.yaml"]
networks:
- traces
logging: *default-logging
promtail:
image: grafana/promtail:2.9.8
container_name: promtail
volumes:
- ./configs/promtail.yaml:/etc/promtail/docker-config.yaml
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock
command: -config.file=/etc/promtail/docker-config.yaml
depends_on:
- loki
networks:
- traces
logging: *default-logging
loki:
image: grafana/loki:2.9.8
container_name: loki
ports:
- 3100:3100
command: -config.file=/etc/loki/local-config.yaml
networks:
- traces
logging: *default-logging
prometheus:
image: prom/prometheus:v2.52.0
container_name: prometheus
command:
- --config.file=/etc/prometheus.yaml
- --web.enable-remote-write-receiver
- --enable-feature=exemplar-storage
volumes:
- ./configs/prometheus.yaml:/etc/prometheus.yaml
ports:
- "9090:9090"
networks:
- traces
logging: *default-logging
networks:
traces:
name: traces
driver: bridge