mirror of
https://github.com/rodneyosodo/gophercon-africa-2024.git
synced 2026-06-23 04:10:06 +00:00
48c349a600
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
139 lines
3.4 KiB
YAML
139 lines
3.4 KiB
YAML
name: gophercon
|
|
|
|
networks:
|
|
gophercon-net:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
prometheus-volume:
|
|
tempo-volume:
|
|
|
|
services:
|
|
gophercon:
|
|
image: ghcr.io/rodneyosodo/gophercon-africa-2024:latest
|
|
container_name: gophercon
|
|
restart: unless-stopped
|
|
ports:
|
|
- ${GOPHERCON_PORT}:${GOPHERCON_PORT}
|
|
- ${GOPHERCON_PROMETHEUS_PORT}:${GOPHERCON_PROMETHEUS_PORT}
|
|
expose:
|
|
- ${GOPHERCON_PORT}
|
|
- ${GOPHERCON_PROMETHEUS_PORT}
|
|
networks:
|
|
- gophercon-net
|
|
environment:
|
|
GOPHERCON_LOG_LEVEL: ${GOPHERCON_LOG_LEVEL}
|
|
GOPHERCON_ADDR: ${GOPHERCON_ADDR}
|
|
GOPHERCON_PROMETHEUS_ENDPOINT: ${GOPHERCON_PROMETHEUS_ENDPOINT}
|
|
GOPHERCON_READ_TIMEOUT: ${GOPHERCON_READ_TIMEOUT}
|
|
GOPHERCON_WRITE_TIMEOUT: ${GOPHERCON_WRITE_TIMEOUT}
|
|
GOPHERCON_OTEL_URL: ${GOPHERCON_OTEL_URL}
|
|
GOPHERCON_TRACE_RATIO: ${GOPHERCON_TRACE_RATIO}
|
|
GOPHERCON_LOKI_URL: ${GOPHERCON_LOKI_URL}
|
|
GOPHERCON_PYROSCOPE_URL: ${GOPHERCON_PYROSCOPE_URL}
|
|
|
|
loki:
|
|
image: grafana/loki:2.9.8
|
|
container_name: loki
|
|
restart: on-failure
|
|
ports:
|
|
- ${LOKI_PORT}:${LOKI_PORT}
|
|
command: "-config.file=/etc/loki/config.yaml -target=all"
|
|
volumes:
|
|
- ./loki/loki-config.yaml:/etc/loki/config.yaml
|
|
networks:
|
|
- gophercon-net
|
|
|
|
prometheus:
|
|
image: prom/prometheus:v2.54.1
|
|
container_name: prometheus
|
|
restart: on-failure
|
|
command:
|
|
- --web.enable-remote-write-receiver
|
|
- --enable-feature=native-histograms
|
|
- --config.file=/etc/prometheus/prometheus.yml
|
|
ports:
|
|
- ${PROMETHEUS_PORT}:9090
|
|
networks:
|
|
- gophercon-net
|
|
volumes:
|
|
- type: bind
|
|
source: ./prometheus/prometheus.yaml
|
|
target: /etc/prometheus/prometheus.yml
|
|
- prometheus-volume:/prometheus
|
|
|
|
tempo-init:
|
|
image: grafana/tempo:2.6.0
|
|
container_name: tempo-init
|
|
user: root
|
|
entrypoint:
|
|
- "chown"
|
|
- "10001:10001"
|
|
- "/var/tempo"
|
|
volumes:
|
|
- tempo-volume:/var/tempo
|
|
networks:
|
|
- gophercon-net
|
|
|
|
memcached:
|
|
image: memcached:1.6.29
|
|
container_name: memcached
|
|
restart: on-failure
|
|
ports:
|
|
- ${TEMPO_MEMCACHED_PORT}:11211
|
|
environment:
|
|
- MEMCACHED_MAX_MEMORY=${MEMCACHED_MAX_MEMORY}
|
|
- MEMCACHED_THREADS=${MEMCACHED_THREADS}
|
|
networks:
|
|
- gophercon-net
|
|
|
|
tempo:
|
|
image: grafana/tempo:2.6.0
|
|
container_name: tempo
|
|
command: ["-config.file=/etc/tempo.yaml"]
|
|
restart: on-failure
|
|
depends_on:
|
|
- tempo-init
|
|
- memcached
|
|
ports:
|
|
- ${TEMPO_PORT}:3200
|
|
- ${TEMPO_OLTP_HTTP}:4318
|
|
volumes:
|
|
- ./tempo/tempo.yaml:/etc/tempo.yaml
|
|
- tempo-volume:/var/tempo
|
|
networks:
|
|
- gophercon-net
|
|
|
|
grafana:
|
|
image: grafana/grafana:11.2.0
|
|
container_name: grafana
|
|
restart: on-failure
|
|
depends_on:
|
|
- prometheus
|
|
ports:
|
|
- ${GRAFANA_PORT}:3000
|
|
environment:
|
|
- GF_LOG_LEVEL=ERROR
|
|
- GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER}
|
|
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD}
|
|
volumes:
|
|
- ./grafana:/etc/grafana/provisioning/
|
|
networks:
|
|
- gophercon-net
|
|
|
|
pyroscope:
|
|
image: grafana/pyroscope:latest
|
|
container_name: pyroscope
|
|
restart: on-failure
|
|
environment:
|
|
JAEGER_AGENT_HOST: tempo
|
|
JAEGER_SAMPLER_TYPE: const
|
|
JAEGER_SAMPLER_PARAM: 1
|
|
command: ["-config.file=/etc/pyroscope.yml"]
|
|
ports:
|
|
- "4040:4040"
|
|
volumes:
|
|
- ./pyroscope/pyroscope.yml:/etc/pyroscope.yml
|
|
networks:
|
|
- gophercon-net
|