forked from turtleDeng/eredis_cluster
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathdocker-compose.yml
92 lines (85 loc) · 2.52 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
version: '3.9'
services:
redis-node-0: &redis-node
image: docker.io/bitnami/redis-cluster:${REDIS_TAG}
volumes:
- ./test/config/users.acl:/usr/local/etc/redis/users.acl
- ./test/config/overrides.conf:/opt/bitnami/redis/mounted-etc/overrides.conf
ports:
- "30001:${REDIS_PORT_NUMBER}"
environment:
- 'REDIS_PASSWORD=${REDIS_PASSWORD}'
- 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
networks:
vpcbr:
ipv4_address: 10.5.0.11
redis-node-1:
<<: *redis-node
ports:
- "30002:${REDIS_PORT_NUMBER}"
networks:
vpcbr:
ipv4_address: 10.5.0.12
redis-node-2:
<<: *redis-node
ports:
- "30003:${REDIS_PORT_NUMBER}"
networks:
vpcbr:
ipv4_address: 10.5.0.13
redis-node-3:
<<: *redis-node
ports:
- "30004:${REDIS_PORT_NUMBER}"
networks:
vpcbr:
ipv4_address: 10.5.0.14
redis-node-4:
<<: *redis-node
ports:
- "30005:${REDIS_PORT_NUMBER}"
networks:
vpcbr:
ipv4_address: 10.5.0.15
redis-node-5:
image: docker.io/bitnami/redis-cluster:${REDIS_TAG}
depends_on:
- redis-node-0
- redis-node-1
- redis-node-2
- redis-node-3
- redis-node-4
environment:
- 'REDIS_PASSWORD=${REDIS_PASSWORD}'
- 'REDISCLI_AUTH=${REDIS_PASSWORD}'
- 'REDIS_CLUSTER_REPLICAS=1'
- 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
- 'REDIS_CLUSTER_CREATOR=yes'
volumes:
- ./test/config/users.acl:/usr/local/etc/redis/users.acl
- ./test/config/overrides.conf:/opt/bitnami/redis/mounted-etc/overrides.conf
ports:
- "30006:${REDIS_PORT_NUMBER}"
networks:
vpcbr:
ipv4_address: 10.5.0.16
healthcheck:
test: |
# Convert `cluster info` output into shell variable assignments
eval "$(
redis-cli -a "${REDIS_PASSWORD}" --no-auth-warning cluster info | \
grep "^cluster" | \
sed -r 's/(\w+):(\w+).*/\1=\2/'
)"
[ "$$cluster_state" = "ok" ] || { echo "cluster state = $$cluster_state"; exit 1; }
[ "$$cluster_size" -gt 1 ] || { echo "cluster size = $$cluster_size"; exit 2; }
[ "$$cluster_known_nodes" -eq 6 ] || { echo "known nodes = $$cluster_known_nodes"; exit 3; }
interval: 5s
retries: 3
networks:
vpcbr:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1