# https://github.com/grafana/tempo/blob/main/example/docker-compose/shared/tempo.yaml
services:

  # Tempo runs as user 10001, and docker compose creates the volume as root.
  # As such, we need to chown the volume in order for Tempo to start correctly.
  init:
    image: &tempoImage grafana/tempo:latest
    user: root
    entrypoint:
      - "chown"
      - "10001:10001"
      - "/var/tempo"
    volumes:
      - tempo-data:/var/tempo

  tempo:
    image: *tempoImage
    command: 
      - -server.http-listen-port=3200
      - -server.grpc-listen-port=9096
      - --storage.trace.backend=local
      - --storage.trace.local.path=/tmp/tempo/traces
      - --storage.trace.wal.path=/tmp/tempo/wal
    volumes:
      - tempo-data:/var/tempo
    network_mode: host # so all the other containers can send to it easily
    depends_on:
      - init

volumes:
  tempo-data: