From a3dc26c6885ae238cce0732c0db9a43917c5cd4e Mon Sep 17 00:00:00 2001 From: Taishi Kasuga Date: Fri, 10 May 2024 04:41:55 +0000 Subject: [PATCH] chore: add a ruby container to docker compose for macOS users (#363) --- compose.yaml | 19 +++++++++++++++++++ test/testing_constants.rb | 24 ++++++++++++++++++++---- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/compose.yaml b/compose.yaml index 6f90706e..dcbd2a75 100644 --- a/compose.yaml +++ b/compose.yaml @@ -65,3 +65,22 @@ services: condition: service_healthy node6: condition: service_healthy + ruby: + image: "ruby:${RUBY_VERSION:-3}" + restart: always + working_dir: /client + volumes: + - .:/client + command: + - ruby + - "-e" + - 'Signal.trap(:INT, "EXIT"); Signal.trap(:TERM, "EXIT"); loop { sleep 1 }' + environment: + REDIS_HOST: node1 + cap_drop: + - ALL + healthcheck: + test: ["CMD", "ruby", "-e", "'puts 1'"] + interval: "5s" + timeout: "3s" + retries: 3 diff --git a/test/testing_constants.rb b/test/testing_constants.rb index 46767a9d..6dcf7247 100644 --- a/test/testing_constants.rb +++ b/test/testing_constants.rb @@ -4,7 +4,7 @@ require 'redis_client' -TEST_REDIS_HOST = '127.0.0.1' +TEST_REDIS_HOST = ENV.fetch('REDIS_HOST', '127.0.0.1') TEST_REDIS_PORT = 6379 TEST_TIMEOUT_SEC = 5.0 TEST_RECONNECT_ATTEMPTS = 3 @@ -56,9 +56,25 @@ TEST_NUMBER_OF_REPLICAS = TEST_REPLICA_SIZE * TEST_SHARD_SIZE TEST_NUMBER_OF_NODES = TEST_SHARD_SIZE + TEST_NUMBER_OF_REPLICAS -TEST_REDIS_PORTS = TEST_REDIS_PORT.upto(TEST_REDIS_PORT + TEST_NUMBER_OF_NODES - 1).to_a.freeze -TEST_NODE_URIS = TEST_REDIS_PORTS.map { |v| "#{TEST_REDIS_SCHEME}://#{TEST_REDIS_HOST}:#{v}" }.freeze -TEST_NODE_OPTIONS = TEST_REDIS_PORTS.to_h { |v| ["#{TEST_REDIS_HOST}:#{v}", { host: TEST_REDIS_HOST, port: v }] }.freeze +case TEST_REDIS_HOST +when '127.0.0.1', 'localhost' + TEST_REDIS_PORTS = TEST_REDIS_PORT.upto(TEST_REDIS_PORT + TEST_NUMBER_OF_NODES - 1).to_a.freeze + TEST_NODE_URIS = TEST_REDIS_PORTS.map { |v| "#{TEST_REDIS_SCHEME}://#{TEST_REDIS_HOST}:#{v}" }.freeze + TEST_NODE_OPTIONS = TEST_REDIS_PORTS.to_h { |v| ["#{TEST_REDIS_HOST}:#{v}", { host: TEST_REDIS_HOST, port: v }] }.freeze +when 'node1' + TEST_REDIS_PORTS = Array.new(TEST_NUMBER_OF_NODES) { TEST_REDIS_PORT }.freeze + TEST_NODE_URIS = Array.new(TEST_NUMBER_OF_NODES) do |i| + host = "node#{i + 1}" + "#{TEST_REDIS_SCHEME}://#{host}:#{TEST_REDIS_PORT}" + end.freeze + + TEST_NODE_OPTIONS = Array.new(TEST_NUMBER_OF_NODES) do |i| + host = "node#{format("%#{TEST_NUMBER_OF_NODES}d", i + 1)}" + ["#{host}:#{TEST_REDIS_PORT}", { host: host, port: TEST_REDIS_PORT }] + end.to_h.freeze +else + raise NotImplementedError, TEST_REDIS_HOST +end TEST_GENERIC_OPTIONS = (TEST_REDIS_SSL ? _base_opts.merge(_ssl_opts) : _base_opts).freeze