-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
68 lines (61 loc) · 1.38 KB
/
docker-compose.yaml
File metadata and controls
68 lines (61 loc) · 1.38 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
services:
kv1:
build: .
container_name: kv1
environment:
NODE_NAME: kv1
PORT: "3000"
PARTICIPANTS: "http://kv2:3000,http://kv3:3000"
ports:
- "3001:3000"
networks:
- kvnet
restart: on-failure
kv2:
build: .
container_name: kv2
environment:
NODE_NAME: kv2
PORT: "3000"
PARTICIPANTS: "http://kv1:3000,http://kv3:3000"
ports:
- "3002:3000"
networks:
- kvnet
restart: on-failure
kv3:
build: .
container_name: kv3
environment:
NODE_NAME: kv3
PORT: "3000"
PARTICIPANTS: "http://kv1:3000,http://kv2:3000"
ports:
- "3003:3000"
networks:
- kvnet
restart: on-failure
chaos-monkey:
image: alpine
depends_on:
- kv1
- kv2
- kv3
networks:
- kvnet
stop_signal: SIGKILL
entrypoint: >
/bin/sh -c "
apk add --no-cache curl;
while true; do
WAIT_TIME=$$(( (RANDOM % 5) + 1 ));
echo \"Waiting $$WAIT_TIME seconds...\";
sleep $$WAIT_TIME;
# Pick a random node (kv1, kv2, or kv3)
TARGET_NUM=$$(( (RANDOM % 3) + 1 ));
TARGET=\"kv$$TARGET_NUM\";
echo \"Sending poison pill to $$TARGET...\";
curl -X POST http://$$TARGET:3000/die || true;
done"
networks:
kvnet: