services: api: hostname: api build: context: ../api depends_on: - alloy environment: - OTEL_EXPORTER_OTLP_ENDPOINT=http://alloy:4317 - OTEL_SERVICE_NAME=lgtm-demo-api ports: - 8000:8000 restart: unless-stopped loki: hostname: loki image: grafana/loki:3.6.7 ports: - 3100:3100 volumes: - ./loki-config.yaml:/etc/loki/config.yaml:ro command: ['-config.file=/etc/loki/config.yaml'] restart: unless-stopped grafana: hostname: grafana image: grafana/grafana:12.4.0 ports: - 3000:3000 environment: - GF_SECURITY_ADMIN_USER=${GRAFANA_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWD:-admin} volumes: - ./grafana/provisioning/datasources/default.yaml:/etc/grafana/provisioning/datasources/default.yaml:ro - ./grafana/provisioning/dashboards/default.yaml:/etc/grafana/provisioning/dashboards/default.yaml:ro - ./grafana/dashboards:/var/lib/grafana/dashboards:ro restart: unless-stopped tempo: hostname: tempo image: grafana/tempo:2.10.1 ports: - 3200:3200 command: ['-config.file=/etc/tempo/config.yaml'] volumes: - ./tempo-config.yaml:/etc/tempo/config.yaml:ro restart: unless-stopped mimir: container_name: mimir hostname: mimir image: grafana/mimir:2.17.7 ports: - 9009:9009 command: ['-config.file=/etc/mimir/config.yaml', '-target=all'] volumes: - ./mimir-config.yaml:/etc/mimir/config.yaml:ro restart: unless-stopped alloy: container_name: alloy hostname: alloy image: grafana/alloy:v1.12.0 command: - run - --server.http.listen-addr=0.0.0.0:12345 - /etc/alloy/config.alloy ports: - 12345:12345 - 4317:4317 - 4318:4318 volumes: - ./alloy-config.alloy:/etc/alloy/config.alloy:ro - /var/run/docker.sock:/var/run/docker.sock:ro restart: unless-stopped node-exporter: hostname: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 command: - --path.procfs=/host/proc - --path.sysfs=/host/sys - --path.rootfs=/rootfs - --collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($|/) - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|nsfs|overlay|proc|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|tmpfs)$ volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro restart: unless-stopped