Files
smart-city-digital-twin-mar…/docker-compose.loki.yml

61 lines
1.9 KiB
YAML

# Loki Stack — Smart City Digital Twin Martinique
# Usage: docker compose -f docker-compose.yml -f docker-compose.loki.yml up -d
# Uses default Loki config (local-config.yaml inside image)
networks:
smartcity-shared:
external: true
traefik-public:
external: true
volumes:
loki_data:
external: false
name: smart-city_loki_data
promtail_data:
external: false
name: smart-city_promtail_data
services:
# Loki — Log storage and query engine (default config)
loki:
image: grafana/loki:latest
container_name: smart-city-loki
networks:
- smartcity-shared
- traefik-public
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
volumes:
- loki_data:/loki
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.loki.rule=Host(`loki.digitribe.fr`)"
- "traefik.http.routers.loki.entrypoints=websecure"
- "traefik.http.routers.loki.tls.certresolver=letsencrypt"
- "traefik.http.services.loki.loadbalancer.server.port=3100"
# Promtail — Log collector (scrapes Docker logs)
promtail:
image: grafana/promtail:latest
container_name: smart-city-promtail
networks:
- smartcity-shared
- traefik-public
command: -config.file=/etc/promtail/config.yml
volumes:
- /var/log:/var/log:ro
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./promtail-config.yml:/etc/promtail/config.yml:ro
- promtail_data:/tmp/promtail
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.promtail.rule=Host(`promtail.digitribe.fr`)"
- "traefik.http.routers.promtail.entrypoints=websecure"
- "traefik.http.routers.promtail.tls.certresolver=letsencrypt"
- "traefik.http.services.promtail.loadbalancer.server.port=9080"