Skip to content

Commit a3dc26c

Browse files
authored
chore: add a ruby container to docker compose for macOS users (#363)
1 parent b38c904 commit a3dc26c

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

compose.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,22 @@ services:
6565
condition: service_healthy
6666
node6:
6767
condition: service_healthy
68+
ruby:
69+
image: "ruby:${RUBY_VERSION:-3}"
70+
restart: always
71+
working_dir: /client
72+
volumes:
73+
- .:/client
74+
command:
75+
- ruby
76+
- "-e"
77+
- 'Signal.trap(:INT, "EXIT"); Signal.trap(:TERM, "EXIT"); loop { sleep 1 }'
78+
environment:
79+
REDIS_HOST: node1
80+
cap_drop:
81+
- ALL
82+
healthcheck:
83+
test: ["CMD", "ruby", "-e", "'puts 1'"]
84+
interval: "5s"
85+
timeout: "3s"
86+
retries: 3

test/testing_constants.rb

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
require 'redis_client'
66

7-
TEST_REDIS_HOST = '127.0.0.1'
7+
TEST_REDIS_HOST = ENV.fetch('REDIS_HOST', '127.0.0.1')
88
TEST_REDIS_PORT = 6379
99
TEST_TIMEOUT_SEC = 5.0
1010
TEST_RECONNECT_ATTEMPTS = 3
@@ -56,9 +56,25 @@
5656
TEST_NUMBER_OF_REPLICAS = TEST_REPLICA_SIZE * TEST_SHARD_SIZE
5757
TEST_NUMBER_OF_NODES = TEST_SHARD_SIZE + TEST_NUMBER_OF_REPLICAS
5858

59-
TEST_REDIS_PORTS = TEST_REDIS_PORT.upto(TEST_REDIS_PORT + TEST_NUMBER_OF_NODES - 1).to_a.freeze
60-
TEST_NODE_URIS = TEST_REDIS_PORTS.map { |v| "#{TEST_REDIS_SCHEME}://#{TEST_REDIS_HOST}:#{v}" }.freeze
61-
TEST_NODE_OPTIONS = TEST_REDIS_PORTS.to_h { |v| ["#{TEST_REDIS_HOST}:#{v}", { host: TEST_REDIS_HOST, port: v }] }.freeze
59+
case TEST_REDIS_HOST
60+
when '127.0.0.1', 'localhost'
61+
TEST_REDIS_PORTS = TEST_REDIS_PORT.upto(TEST_REDIS_PORT + TEST_NUMBER_OF_NODES - 1).to_a.freeze
62+
TEST_NODE_URIS = TEST_REDIS_PORTS.map { |v| "#{TEST_REDIS_SCHEME}://#{TEST_REDIS_HOST}:#{v}" }.freeze
63+
TEST_NODE_OPTIONS = TEST_REDIS_PORTS.to_h { |v| ["#{TEST_REDIS_HOST}:#{v}", { host: TEST_REDIS_HOST, port: v }] }.freeze
64+
when 'node1'
65+
TEST_REDIS_PORTS = Array.new(TEST_NUMBER_OF_NODES) { TEST_REDIS_PORT }.freeze
66+
TEST_NODE_URIS = Array.new(TEST_NUMBER_OF_NODES) do |i|
67+
host = "node#{i + 1}"
68+
"#{TEST_REDIS_SCHEME}://#{host}:#{TEST_REDIS_PORT}"
69+
end.freeze
70+
71+
TEST_NODE_OPTIONS = Array.new(TEST_NUMBER_OF_NODES) do |i|
72+
host = "node#{format("%#{TEST_NUMBER_OF_NODES}d", i + 1)}"
73+
["#{host}:#{TEST_REDIS_PORT}", { host: host, port: TEST_REDIS_PORT }]
74+
end.to_h.freeze
75+
else
76+
raise NotImplementedError, TEST_REDIS_HOST
77+
end
6278

6379
TEST_GENERIC_OPTIONS = (TEST_REDIS_SSL ? _base_opts.merge(_ssl_opts) : _base_opts).freeze
6480

0 commit comments

Comments
 (0)