-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.yaml
More file actions
193 lines (185 loc) · 4.73 KB
/
compose.yaml
File metadata and controls
193 lines (185 loc) · 4.73 KB
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
187
188
189
190
191
192
193
services:
proxy:
build: velocity/.
container_name: velocity
environment:
TYPE: "VELOCITY"
VELOCITY_SECRET: "jfei7Ua34jhQ"
labels:
logging: "promtail"
logging_jobname: "containerlogs"
ports:
- '25565:25565'
volumes:
- ./run:/server
- ./build/libs:/server/plugins/
- /var/run/docker.sock:/var/run/docker.sock
networks:
- islands_network
secrets:
- rmq_password
- rmq_username
- rmq_host
- rmq_port
- redis_password
- redis_host
- redis_port
- redis_username
- mongodb_password
- mongodb_username
- mongodb_host
- mongodb_port
- docker_host
depends_on:
mongo:
condition: service_healthy
redis:
condition: service_healthy
rabbitmq:
condition: service_healthy
mongo:
build: mongodb/.
container_name: mongo
environment:
MONGO_INITDB_ROOT_PASSWORD_FILE: /run/secrets/mongodb_root_password
MONGO_INITDB_ROOT_USERNAME_FILE: /run/secrets/mongodb_root_username
MONGO_INITDB_DATABASE: admin
MONGO_USERNAME_FILE: /run/secrets/mongodb_username
MONGO_PASSWORD_FILE: /run/secrets/mongodb_password
MONGO_DATABASE: iswars
secrets:
- mongodb_root_password
- mongodb_root_username
- mongodb_password
- mongodb_username
networks:
- islands_network
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/iswars --quiet
interval: 2s
timeout: 5s
retries: 2
start_period: 5s
volumes:
- ./mongodb/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d/
command: [ --auth ]
rabbitmq:
build: rmq/.
container_name: rmq
environment:
RMQ_PASSWORD_FILE: /run/secrets/rmq_password
RMQ_USERNAME_FILE: /run/secrets/rmq_username
secrets:
- rmq_password
- rmq_username
networks:
- islands_network
healthcheck:
test: [ "CMD-SHELL", "rabbitmq-diagnostics -q ping" ]
interval: 2s
timeout: 10s
retries: 5
start_period: 5s
redis:
build: redis/.
container_name: redis
environment:
REDIS_PASSWORD_FILE: /run/secrets/redis_password
REDIS_USERNAME_FILE: /run/secrets/redis_username
REDIS_DISABLE_DEFAULT_USER: true
secrets:
- redis_password
- redis_username
networks:
- islands_network
ports:
- "6379:6379"
healthcheck:
test: [ "CMD-SHELL", "redis-cli -u redis://$(cat /run/secrets/redis_username):$(cat /run/secrets/redis_password)@redis:6379 PING | grep -q PONG" ]
interval: 2s
timeout: 10s
retries: 5
start_period: 5s
loki:
image: grafana/loki:2.9.4
container_name: loki
volumes:
- ./loki:/etc/loki
command: -config.file=/etc/loki/loki-config.yml
networks:
- islands_network
promtail:
image: grafana/promtail:2.9.4
container_name: promtail
volumes:
- ./promtail:/etc/promtail
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/containers:/var/lib/docker/containers
command: -config.file=/etc/promtail/promtail-config.yml
networks:
- islands_network
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
entrypoint:
- sh
- -euc
- |
mkdir -p /etc/grafana/provisioning/datasources
cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml
apiVersion: 1
datasources:
- name: Loki
type: loki
access: proxy
orgId: 1
url: http://loki:3100
basicAuth: false
isDefault: true
version: 1
editable: false
EOF
/run.sh
networks:
- islands_network
networks:
islands_network:
name: islands_dev_network
driver: bridge
secrets:
rmq_password:
file: secrets/rmq_password
rmq_username:
file: secrets/rmq_username
rmq_host:
file: secrets/rmq_host
rmq_port:
file: secrets/rmq_port
redis_password:
file: secrets/redis_password
redis_host:
file: secrets/redis_host
redis_port:
file: secrets/redis_port
redis_username:
file: secrets/redis_username
mongodb_root_password:
file: secrets/mongodb_root_password
mongodb_root_username:
file: secrets/mongodb_root_username
mongodb_password:
file: secrets/mongodb_password
mongodb_username:
file: secrets/mongodb_username
mongodb_host:
file: secrets/mongodb_host
mongodb_port:
file: secrets/mongodb_port
docker_host:
file: secrets/docker_host