# @managed by create-grafana-plugin — do not edit
name: {{ plugin_name }}
services:
grafana:
container_name: {{ plugin_name }}-grafana
image: grafana/grafana:12.4.2
ports:
- "{{ 3000 + port_offset }}:3000"
environment:
- GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS={{ plugin_id }}
- GF_PLUGINS_ENABLE_ALPHA=true
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_LOG_LEVEL=debug
volumes:
- ./dist/{{ plugin_id }}:/var/lib/grafana/plugins/{{ plugin_id }}
- ./provisioning:/etc/grafana/provisioning
- grafana-data:/var/lib/grafana
networks:
- {{ plugin_name }}-net
depends_on:
- prometheus
- tempo
- loki
{%- if has_mock %}
otel-mock:
container_name: {{ plugin_name }}-otel-mock
build:
context: .
dockerfile: otel-mock/Dockerfile
environment:
OTEL_EXPORTER_OTLP_ENDPOINT: http://tempo:4317
LOKI_URL: http://loki:3100
OTEL_MOCK_PROM_ADDR: 0.0.0.0:9464
OTEL_MOCK_OPENMETRICS_ADDR: 0.0.0.0:9465
OTEL_MOCK_TICK_MS: "5000"
RUST_LOG: info
ports:
- "{{ 9464 + port_offset }}:9464"
- "{{ 9465 + port_offset }}:9465"
networks:
- {{ plugin_name }}-net
depends_on:
- tempo
- loki
{%- endif %}
prometheus:
container_name: {{ plugin_name }}-prometheus
image: prom/prometheus:v3.10.0
user: "nobody"
ports:
- "{{ 9090 + port_offset }}:9090"
volumes:
- ./provisioning/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
networks:
- {{ plugin_name }}-net
command:
- --config.file=/etc/prometheus/prometheus.yml
- --web.enable-remote-write-receiver
- --storage.tsdb.path=/prometheus
tempo:
container_name: {{ plugin_name }}-tempo
image: grafana/tempo:2.6.1
user: root
ports:
- "{{ 3200 + port_offset }}:3200"
- "{{ 4317 + port_offset }}:4317"
volumes:
- ./provisioning/tempo/tempo.yml:/etc/tempo/tempo.yml
- tempo-data:/var/lib/tempo
networks:
- {{ plugin_name }}-net
command:
- -config.file=/etc/tempo/tempo.yml
loki:
container_name: {{ plugin_name }}-loki
image: grafana/loki:3.7.1
user: root
ports:
- "{{ 3100 + port_offset }}:3100"
volumes:
- ./provisioning/loki/config.yml:/etc/loki/local-config.yaml
- loki-data:/loki
networks:
- {{ plugin_name }}-net
command:
- -config.file=/etc/loki/local-config.yaml
networks:
{{ plugin_name }}-net:
name: {{ plugin_name }}-net
driver: bridge
volumes:
grafana-data:
prometheus-data:
tempo-data:
loki-data: