Skip to content

Commit 777b33e

Browse files
authored
fix: a docker compose file for NAT-ted environments (#100)
1 parent be30dc3 commit 777b33e

File tree

2 files changed

+31
-17
lines changed

2 files changed

+31
-17
lines changed

docker-compose.nat.yaml

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
2-
# REDIS_HOST=192.168.11.9 docker compose -f docker-compose.nat.yaml up
3-
# REDIS_HOST=192.168.11.7 docker compose -f docker-compose.nat.yaml up
2+
# First things first, make sure the default-address-pools settings in /etc/docker/daemon.json
3+
# HOST_ADDR=192.168.11.9 docker compose -f docker-compose.nat.yaml up
4+
# HOST_ADDR=192.168.11.7 docker compose -f docker-compose.nat.yaml up
45
# bundle exec rake 'build_cluster[192.168.11.9,192.168.11.7]'
56
services:
67
node1: &node
@@ -10,10 +11,12 @@ services:
1011
--maxmemory 64mb
1112
--maxmemory-policy allkeys-lru
1213
--appendonly yes
14+
--replica-announce-ip "${HOST_ADDR:-127.0.0.1}"
15+
--replica-announce-port 6379
1316
--cluster-enabled yes
1417
--cluster-config-file nodes.conf
15-
--cluster-node-timeout 30000
16-
--cluster-announce-ip "${REDIS_HOST:-127.0.0.1}"
18+
--cluster-node-timeout 10000
19+
--cluster-announce-ip "${HOST_ADDR:-127.0.0.1}"
1720
--cluster-announce-port 6379
1821
--cluster-announce-bus-port 16379
1922
restart: "${RESTART_POLICY:-always}"
@@ -32,10 +35,12 @@ services:
3235
--maxmemory 64mb
3336
--maxmemory-policy allkeys-lru
3437
--appendonly yes
38+
--replica-announce-ip "${HOST_ADDR:-127.0.0.1}"
39+
--replica-announce-port 6380
3540
--cluster-enabled yes
3641
--cluster-config-file nodes.conf
37-
--cluster-node-timeout 30000
38-
--cluster-announce-ip "${REDIS_HOST:-127.0.0.1}"
42+
--cluster-node-timeout 10000
43+
--cluster-announce-ip "${HOST_ADDR:-127.0.0.1}"
3944
--cluster-announce-port 6380
4045
--cluster-announce-bus-port 16380
4146
ports:
@@ -48,10 +53,12 @@ services:
4853
--maxmemory 64mb
4954
--maxmemory-policy allkeys-lru
5055
--appendonly yes
56+
--replica-announce-ip "${HOST_ADDR:-127.0.0.1}"
57+
--replica-announce-port 6381
5158
--cluster-enabled yes
5259
--cluster-config-file nodes.conf
53-
--cluster-node-timeout 30000
54-
--cluster-announce-ip "${REDIS_HOST:-127.0.0.1}"
60+
--cluster-node-timeout 10000
61+
--cluster-announce-ip "${HOST_ADDR:-127.0.0.1}"
5562
--cluster-announce-port 6381
5663
--cluster-announce-bus-port 16381
5764
ports:
@@ -64,10 +71,12 @@ services:
6471
--maxmemory 64mb
6572
--maxmemory-policy allkeys-lru
6673
--appendonly yes
74+
--replica-announce-ip "${HOST_ADDR:-127.0.0.1}"
75+
--replica-announce-port 6382
6776
--cluster-enabled yes
6877
--cluster-config-file nodes.conf
69-
--cluster-node-timeout 30000
70-
--cluster-announce-ip "${REDIS_HOST:-127.0.0.1}"
78+
--cluster-node-timeout 10000
79+
--cluster-announce-ip "${HOST_ADDR:-127.0.0.1}"
7180
--cluster-announce-port 6382
7281
--cluster-announce-bus-port 16382
7382
ports:
@@ -80,10 +89,12 @@ services:
8089
--maxmemory 64mb
8190
--maxmemory-policy allkeys-lru
8291
--appendonly yes
92+
--replica-announce-ip "${HOST_ADDR:-127.0.0.1}"
93+
--replica-announce-port 6383
8394
--cluster-enabled yes
8495
--cluster-config-file nodes.conf
85-
--cluster-node-timeout 30000
86-
--cluster-announce-ip "${REDIS_HOST:-127.0.0.1}"
96+
--cluster-node-timeout 10000
97+
--cluster-announce-ip "${HOST_ADDR:-127.0.0.1}"
8798
--cluster-announce-port 6383
8899
--cluster-announce-bus-port 16383
89100
ports:
@@ -96,10 +107,12 @@ services:
96107
--maxmemory 64mb
97108
--maxmemory-policy allkeys-lru
98109
--appendonly yes
110+
--replica-announce-ip "${HOST_ADDR:-127.0.0.1}"
111+
--replica-announce-port 6384
99112
--cluster-enabled yes
100113
--cluster-config-file nodes.conf
101-
--cluster-node-timeout 30000
102-
--cluster-announce-ip "${REDIS_HOST:-127.0.0.1}"
114+
--cluster-node-timeout 10000
115+
--cluster-announce-ip "${HOST_ADDR:-127.0.0.1}"
103116
--cluster-announce-port 6384
104117
--cluster-announce-bus-port 16384
105118
ports:

test/cluster_controller.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,10 @@ def replicate(clients, shard_size:, replica_size:)
298298
replica.call('CLUSTER', 'REPLICATE', primary_id)
299299
print_debug("#{replica.config.host}:#{replica.config.port} ... CLUSTER REPLICATE #{primaries[i].config.host}:#{primaries[i].config.port}")
300300
end
301-
rescue ::RedisClient::CommandError
302-
# ERR Unknown node [key]
303-
sleep 0.1
301+
rescue ::RedisClient::CommandError => e
302+
print_debug(e.message)
303+
# ERR Unknown node [node-id]
304+
sleep 1.0
304305
primary_id = primaries[i].call('CLUSTER', 'MYID')
305306
next
306307
end

0 commit comments

Comments
 (0)