mirror of
https://github.com/vacp2p/nim-libp2p.git
synced 2026-08-27 10:21:08 +00:00
113 lines
2.9 KiB
YAML
113 lines
2.9 KiB
YAML
networks:
|
|
monitor:
|
|
|
|
services:
|
|
# observability ui
|
|
grafana:
|
|
container_name: grafana
|
|
image: grafana/grafana:11.1.0
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=admin
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
- GF_AUTH_ANONYMOUS_ENABLED=true
|
|
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
|
|
env_file:
|
|
- ./grafana/provisioning/grafana-plugins.env
|
|
volumes:
|
|
- ./grafana/provisioning:/etc/grafana/provisioning
|
|
- ./grafana/dashboards:/var/lib/grafana/dashboards/:z
|
|
ports:
|
|
- "3000:3000" # browse on http://localhost:3000
|
|
networks: [monitor]
|
|
depends_on:
|
|
- prometheus
|
|
|
|
prometheus:
|
|
container_name: prometheus
|
|
image: prom/prometheus:v2.55.1
|
|
command: ["--config.file=/etc/prometheus/prometheus.yml"]
|
|
volumes:
|
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
networks: [monitor]
|
|
|
|
cadvisor:
|
|
image: gcr.io/cadvisor/cadvisor:latest
|
|
container_name: cadvisor
|
|
volumes:
|
|
- /:/rootfs:ro
|
|
- /var/run:/var/run:rw
|
|
- /sys:/sys:ro
|
|
- /var/lib/docker/:/var/lib/docker:ro
|
|
networks:
|
|
- monitor
|
|
|
|
redis:
|
|
container_name: redis
|
|
image: redis:7-alpine
|
|
ports:
|
|
- "6379:6379" # optional; intra-network works without publishing
|
|
networks: [monitor]
|
|
tmpfs:
|
|
- /data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 20
|
|
start_period: 5s
|
|
|
|
simulation:
|
|
build:
|
|
context: ..
|
|
dockerfile: simulation/Dockerfile
|
|
image: nim-libp2p/simulation:latest
|
|
networks: [monitor]
|
|
# Local docker compose may ignore deploy.replicas; use `--scale simulation=N`
|
|
# when starting the stack to control the number of node containers.
|
|
deploy:
|
|
replicas: ${NUM_LIBP2P_NODES:-10}
|
|
command: []
|
|
cap_add:
|
|
- NET_ADMIN # REQUIRED for tc
|
|
environment:
|
|
NETEM: "delay 100ms 10ms distribution normal"
|
|
NUM_LIBP2P_NODES: ${NUM_LIBP2P_NODES:-10}
|
|
TRANSPORT: ${TRANSPORT:-QUIC}
|
|
CONNECTTO: ${CONNECTTO:-10}
|
|
ports:
|
|
- target: 5000 # app
|
|
published: 0
|
|
protocol: udp
|
|
- target: 8008 # prometheus
|
|
published: 0
|
|
protocol: tcp
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
loki:
|
|
image: grafana/loki:3.0.0
|
|
container_name: loki
|
|
command: ["-config.file=/etc/loki/config.yml"]
|
|
ports:
|
|
- "3100:3100"
|
|
networks: [monitor]
|
|
user: "0:0" # root
|
|
tmpfs:
|
|
- /loki
|
|
volumes:
|
|
- ./loki-config.yml:/etc/loki/config.yml:ro
|
|
|
|
promtail:
|
|
image: grafana/promtail:3.0.0
|
|
container_name: promtail
|
|
command: ["-config.file=/etc/promtail/config.yml"]
|
|
networks: [monitor]
|
|
depends_on:
|
|
- loki
|
|
volumes:
|
|
- ./promtail-config.yml:/etc/promtail/config.yml:ro
|
|
- /var/log:/var/log:ro
|
|
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|