-
Notifications
You must be signed in to change notification settings - Fork 27
/
docker-compose.yml
150 lines (142 loc) · 3.51 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
version: '3'
volumes:
prometheus_data: {}
grafana_data: {}
networks:
node-monitor-net:
services:
indy-node-monitor:
build:
context: ./fetch-validator-status
dockerfile: ./Dockerfile
image: indy-node-monitor
volumes:
# Mounts for indy-node-monitor configuration
- ./fetch-validator-status/plugins/:/home/indy/plugins/
- ./fetch-validator-status/conf/:/home/indy/conf/
- ./fetch-validator-status/logs/:/home/indy/logs/
ports:
- "8080:8080"
networks:
- node-monitor-net
command: >
--web --verbose
telegraf:
# Full tag list: https://hub.docker.com/r/library/telegraf/tags/
build:
context: ./images/telegraf/
dockerfile: ./${TYPE}/Dockerfile
args:
TELEGRAF_TAG: ${TELEGRAF_TAG}
image: telegraf
env_file:
- ${TELEGRAF_ENV}
# Telegraf requires network access to:
# - InfluxDB
# - Indy-Node-Monitor
links:
- influxdb
- indy-node-monitor
volumes:
# Mount for telegraf configuration
- ./telegraf/:/etc/telegraf/
depends_on:
- influxdb
- indy-node-monitor
ports:
# The WebUI for Chronograf is served on port 8888
- "9273:9273"
networks:
- node-monitor-net
influxdb:
# Full tag list: https://hub.docker.com/r/library/influxdb/tags/
build:
context: ./images/influxdb/
dockerfile: ./${TYPE}/Dockerfile
args:
INFLUXDB_TAG: ${INFLUXDB_TAG}
image: influxdb
volumes:
# Mount for influxdb data directory
- ./influxdb/data:/var/lib/influxdb
# Mount for influxdb configuration
- ./influxdb/config/:/etc/influxdb/
ports:
# The API for InfluxDB is served on port 8086
- "8086:8086"
- "8082:8082"
# UDP Port
- "8089:8089/udp"
networks:
- node-monitor-net
prometheus:
image: prom/prometheus
volumes:
- ./prometheus/:/etc/prometheus/
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
ports:
- 9090:9090
links:
- telegraf
- alertmanager
depends_on:
- telegraf
networks:
- node-monitor-net
# deploy:
# placement:
# constraints:
# - node.role==manager
# restart_policy:
# condition: on-failure
alertmanager:
image: prom/alertmanager
ports:
- 9093:9093
volumes:
- "./alertmanager/:/etc/alertmanager/"
networks:
- node-monitor-net
command:
- '--config.file=/etc/alertmanager/config.yml'
- '--storage.path=/alertmanager'
# deploy:
# placement:
# constraints:
# - node.role==manager
# restart_policy:
# condition: on-failure
grafana:
build:
context: ./images/grafana/
dockerfile: ./Dockerfile
args:
GRAFANA_TAG: ${GRAFANA_TAG}
image: grafana
depends_on:
- prometheus
- influxdb
ports:
- 3000:3000
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
env_file:
- ${GRAFANA_ENV}
networks:
- node-monitor-net
links:
- influxdb
- prometheus
user: "472"
# deploy:
# placement:
# constraints:
# - node.role==manager
# restart_policy:
# condition: on-failure