-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
186 lines (186 loc) · 5.01 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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
networks:
cassandra_playroom:
services:
tools:
image: cassandra:4.1.7-tools
build: ./build/tools
mem_limit: 350m
cpu_shares: 4
container_name: tools
hostname: tools
networks:
- cassandra_playroom
volumes:
- tools:/reports
healthcheck:
test: ["CMD", "echo", "Cassandra Tools Container"]
interval: 10s
timeout: 2s
retries: 5
start_period: 10s
start_interval: 1s
restart: unless-stopped
cassandra1:
extends:
file: compose/cassandra-common.yml
service: cassandra
volumes:
- cassandra1:/var/lib/cassandra
- ./config/jmx_prometheus/config.yaml:/opt/jmx_prometheus/config.yaml
- ./config/medusa/medusa.ini:/etc/medusa/medusa.ini
container_name: cassandra1
hostname: cassandra1
ports:
- '9042:9042'
- '9103:9103'
environment:
CASSANDRA_RACK: RACK1
depends_on:
tools:
condition: service_healthy
cassandra2:
extends:
file: compose/cassandra-common.yml
service: cassandra
volumes:
- cassandra2:/var/lib/cassandra
- ./config/jmx_prometheus/config.yaml:/opt/jmx_prometheus/config.yaml
- ./config/medusa/medusa.ini:/etc/medusa/medusa.ini
container_name: cassandra2
hostname: cassandra2
ports:
- '9043:9042'
- '9104:9103'
environment:
CASSANDRA_RACK: RACK2
depends_on:
cassandra1:
condition: service_healthy
cassandra3:
extends:
file: compose/cassandra-common.yml
service: cassandra
volumes:
- cassandra3:/var/lib/cassandra
- ./config/jmx_prometheus/config.yaml:/opt/jmx_prometheus/config.yaml
- ./config/medusa/medusa.ini:/etc/medusa/medusa.ini
container_name: cassandra3
hostname: cassandra3
ports:
- '9044:9042'
- '9105:9103'
environment:
CASSANDRA_RACK: RACK3
depends_on:
cassandra2:
condition: service_healthy
neo4j:
image: neo4j:enterprise
container_name: neo4j
hostname: neo4j
cpu_shares: 3
mem_limit: 800m
ports:
- '7474:7474'
- '7687:7687'
networks:
- cassandra_playroom
environment:
NEO4J_AUTH: neo4j/password
NEO4J_ACCEPT_LICENSE_AGREEMENT: eval
NEO4J_dbms_security_procedures_unrestricted: apoc.*
NEO4J_dbms_security_procedures_whitelist: apoc.*
NEO4J_dbms_security_procedures_allowlist: apoc.*
NEO4JLABS_PLUGINS: '["apoc"]'
volumes:
- neo4j:/data
depends_on:
cassandra3:
condition: service_healthy
reaper:
image: thelastpickle/cassandra-reaper:latest
volumes:
- reaper:/var/log/cassandra-reaper
- ./config/reaper/cassandra-reaper.yaml:/etc/cassandra-reaper/cassandra-reaper.yml
container_name: reaper
restart: unless-stopped
cpu_shares: 3
mem_limit: 250m
hostname: reaper
networks:
- cassandra_playroom
ports:
- '8080:8080'
- '8081:8081'
environment:
REAPER_JMX_AUTH_USERNAME: reaperUser
REAPER_JMX_AUTH_PASSWORD: reaperPass
CRYPTO_SYSTEM_PROPERTY_SECRET: CRYPTO_SECRET
CRYPTO_SECRET: secret
depends_on:
cassandra1:
condition: service_healthy
cassandra2:
condition: service_healthy
cassandra3:
condition: service_healthy
prometheus:
image: "prom/prometheus"
container_name: prometheus
cpu_shares: 2
mem_limit: 250m
hostname: prometheus
restart: unless-stopped
command:
- '--config.file=/etc/prometheus/prometheus.yaml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention=14d'
- '--storage.tsdb.allow-overlapping-blocks'
networks:
- cassandra_playroom
ports:
- '9090:9090'
volumes:
- prometheus:/prometheus
- ./config/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yaml
- ./config/prometheus/tg_jmx_prometheus.json:/etc/prometheus/tg_jmx_prometheus.json
- ./config/prometheus/tg_reaper.json:/etc/prometheus/tg_reaper.json
depends_on:
cassandra1:
condition: service_healthy
cassandra2:
condition: service_healthy
cassandra3:
condition: service_healthy
grafana:
image: grafana/grafana-oss
container_name: grafana
cpu_shares: 2
mem_limit: 250m
hostname: grafana
restart: unless-stopped
ports:
- '3000:3000'
networks:
- cassandra_playroom
environment:
GF_INSTALL_PLUGINS: 'grafana-polystat-panel'
GF_SECURITY_ADMIN_PASSWORD: admin
GF_AUTH_ANONYMOUS_ENABLED: "true"
volumes:
- grafana:/var/lib/grafana
- './config/grafana/prometheus-datasource.yaml:/etc/grafana/provisioning/datasources/prometheus-datasource.yaml'
- './config/grafana/dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml'
- './config/grafana/dashboards:/var/lib/grafana/dashboards'
depends_on:
prometheus:
condition: service_started
volumes:
cassandra1:
cassandra2:
cassandra3:
prometheus:
grafana:
reaper:
tools:
neo4j: