99 lines
2.2 KiB
YAML

---
x-logging: &default-logging
driver: local
options:
max-size: "1m"
max-file: "50"
x-opt-values: &volume-opt
driver_opts: &options
type: "nfs"
o: "addr=${IP},rw"
services:
# https://learn.netdata.cloud/docs/agent/packaging/docker
# https://learn.netdata.cloud/docs/agent/exporting/walkthrough
netdata:
image: netdata/netdata
container_name: netdata
hostname: netdata.domain.tld # set to fqdn of host
env_file:
- netdata.env
restart: unless-stopped
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- netdataconfig:/etc/netdata:ro
- netdatalib:/var/lib/netdata
- netdatacache:/var/cache/netdata
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- reverse-proxy
- npg
logging: *default-logging
prometheus:
image: prom/prometheus
container_name: prometheus
hostname: prometheus
env_file:
prometheus.env
volumes:
- prometheus:/etc/prometheus
networks:
- npg
logging: *default-logging
grafana:
image: grafana/grafana
container_name: grafana
env_file:
grafana.env
volumes:
- grafana:/var/lib/grafana
networks:
- npg
logging: *default-logging
# Can be substituted by a standard volume declaration if it's just a test
# environment or no nfs server is available
volumes:
netdataconfig:
<<: *volume-opt
driver_opts:
<<: *options
device: ":/mnt/path/netdata/netdataconfig"
netdatalib:
<<: *volume-opt
driver_opts:
<<: *options
device: ":/mnt/path/netdata/netdatalib"
netdatacache:
<<: *volume-opt
driver_opts:
<<: *options
device: ":/mnt/path/netdata/netdatacache"
prometheus:
<<: *volume-opt
driver_opts:
<<: *options
device: ":/mnt/path/prometheus/prometheus"
grafana:
<<: *volume-opt
driver_opts:
<<: *options
device: ":/mnt/path/grafana/grafana"
networks:
reverse-proxy:
name: rp_reverse-proxy
external: true
npg: