From 6ec242e80f1129ab29da12bdf1cd4698a19340b9 Mon Sep 17 00:00:00 2001 From: "Chayim I. Kirshen" Date: Thu, 24 Feb 2022 16:25:18 +0200 Subject: [PATCH 1/3] redismod cluster docker --- docker/base/Dockerfile.redismod_cluster | 11 ++++++ docker/base/create_redismod_cluster.sh | 46 +++++++++++++++++++++++++ docker/redismod_cluster/redis.conf | 7 ++++ 3 files changed, 64 insertions(+) create mode 100644 docker/base/Dockerfile.redismod_cluster create mode 100755 docker/base/create_redismod_cluster.sh create mode 100644 docker/redismod_cluster/redis.conf diff --git a/docker/base/Dockerfile.redismod_cluster b/docker/base/Dockerfile.redismod_cluster new file mode 100644 index 0000000000..bdf8935b74 --- /dev/null +++ b/docker/base/Dockerfile.redismod_cluster @@ -0,0 +1,11 @@ +# produces redisfab/redis-py-cluster:6.2.6 +FROM redislabs/redismod:edge + +COPY create_redismod_cluster.sh /create_redismod_cluster.sh +RUN chmod +x /create_redismod_cluster.sh + +EXPOSE 46379 46380 46381 46382 46383 46384 + +ENV START_PORT=46379 +ENV END_PORT=46384 +CMD /create_redismod_cluster.sh diff --git a/docker/base/create_redismod_cluster.sh b/docker/base/create_redismod_cluster.sh new file mode 100755 index 0000000000..fcb1b1cd8d --- /dev/null +++ b/docker/base/create_redismod_cluster.sh @@ -0,0 +1,46 @@ +#! /bin/bash + +mkdir -p /nodes +touch /nodes/nodemap +if [ -z ${START_PORT} ]; then + START_PORT=16379 +fi +if [ -z ${END_PORT} ]; then + END_PORT=16384 +fi +if [ ! -z "$3" ]; then + START_PORT=$2 + START_PORT=$3 +fi +echo "STARTING: ${START_PORT}" +echo "ENDING: ${END_PORT}" + +for PORT in `seq ${START_PORT} ${END_PORT}`; do + mkdir -p /nodes/$PORT + if [[ -e /redis.conf ]]; then + cp /redis.conf /nodes/$PORT/redis.conf + else + touch /nodes/$PORT/redis.conf + fi + cat << EOF >> /nodes/$PORT/redis.conf +port ${PORT} +cluster-enabled yes +daemonize yes +logfile /redis.log +dir /nodes/$PORT +EOF + + set -x + redis-server /nodes/$PORT/redis.conf + if [ $? -ne 0 ]; then + echo "Redis failed to start, exiting." + continue + fi + echo 127.0.0.1:$PORT >> /nodes/nodemap +done +if [ -z "${REDIS_PASSWORD}" ]; then + echo yes | redis-cli --cluster create `seq -f 127.0.0.1:%g ${START_PORT} ${END_PORT}` --cluster-replicas 1 +else + echo yes | redis-cli -a ${REDIS_PASSWORD} --cluster create `seq -f 127.0.0.1:%g ${START_PORT} ${END_PORT}` --cluster-replicas 1 +fi +tail -f /redis.log diff --git a/docker/redismod_cluster/redis.conf b/docker/redismod_cluster/redis.conf new file mode 100644 index 0000000000..6f5e9c66ff --- /dev/null +++ b/docker/redismod_cluster/redis.conf @@ -0,0 +1,7 @@ +loadmodule /usr/lib/redis/modules/redisai.so +loadmodule /usr/lib/redis/modules/redisearch.so +loadmodule /usr/lib/redis/modules/redisgraph.so +loadmodule /usr/lib/redis/modules/redistimeseries.so +loadmodule /usr/lib/redis/modules/rejson.so +loadmodule /usr/lib/redis/modules/redisbloom.so +loadmodule /var/opt/redislabs/lib/modules/redisgears.so Plugin /var/opt/redislabs/modules/rg/plugin/gears_python.so Plugin /var/opt/redislabs/modules/rg/plugin/gears_jvm.so JvmOptions -Djava.class.path=/var/opt/redislabs/modules/rg/gear_runtime-jar-with-dependencies.jar JvmPath /var/opt/redislabs/modules/rg/OpenJDK/jdk-11.0.9.1+1/ From eaefb3120a16e3707183a4db7a9af64bcc1c54c3 Mon Sep 17 00:00:00 2001 From: dvora-h Date: Thu, 24 Feb 2022 18:04:22 +0200 Subject: [PATCH 2/3] add to tox --- tox.ini | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tox.ini b/tox.ini index 3ef01ddead..82e79d7611 100644 --- a/tox.ini +++ b/tox.ini @@ -109,6 +109,20 @@ healtcheck_cmd = python -c "import socket;print(True) if all([0 == socket.socket volumes = bind:rw:{toxinidir}/docker/cluster/redis.conf:/redis.conf +[docker:redismod_cluster] +name = redismod_cluster +image = redisfab/redis-py-modcluster:6.2.6 +ports = + 46379:46379/tcp + 46380:46380/tcp + 46381:46381/tcp + 46382:46382/tcp + 46383:46383/tcp + 46384:46384/tcp +healtcheck_cmd = python -c "import socket;print(True) if all([0 == socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect_ex(('127.0.0.1',port)) for port in range(46379,46384)]) else False" +volumes = + bind:rw:{toxinidir}/docker/redismod_cluster/redis.conf:/redis.conf + [docker:stunnel] name = stunnel image = redisfab/stunnel:latest @@ -262,6 +276,7 @@ docker = sentinel_3 redis_cluster redismod + redismod_cluster stunnel extras = hiredis: hiredis From f10ee7cdc39cb87f7db482c3a79883dd2eb38dca Mon Sep 17 00:00:00 2001 From: "Chayim I. Kirshen" Date: Mon, 28 Feb 2022 15:50:27 +0200 Subject: [PATCH 3/3] mod cluster --- docker/base/Dockerfile.redismod_cluster | 3 ++- docker/base/create_redismod_cluster.sh | 4 ++-- docker/redismod_cluster/redis.conf | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docker/base/Dockerfile.redismod_cluster b/docker/base/Dockerfile.redismod_cluster index bdf8935b74..5b80e495fb 100644 --- a/docker/base/Dockerfile.redismod_cluster +++ b/docker/base/Dockerfile.redismod_cluster @@ -1,4 +1,4 @@ -# produces redisfab/redis-py-cluster:6.2.6 +# produces redisfab/redis-py-modcluster:6.2.6 FROM redislabs/redismod:edge COPY create_redismod_cluster.sh /create_redismod_cluster.sh @@ -8,4 +8,5 @@ EXPOSE 46379 46380 46381 46382 46383 46384 ENV START_PORT=46379 ENV END_PORT=46384 +ENTRYPOINT [] CMD /create_redismod_cluster.sh diff --git a/docker/base/create_redismod_cluster.sh b/docker/base/create_redismod_cluster.sh index fcb1b1cd8d..20443a4c42 100755 --- a/docker/base/create_redismod_cluster.sh +++ b/docker/base/create_redismod_cluster.sh @@ -3,10 +3,10 @@ mkdir -p /nodes touch /nodes/nodemap if [ -z ${START_PORT} ]; then - START_PORT=16379 + START_PORT=46379 fi if [ -z ${END_PORT} ]; then - END_PORT=16384 + END_PORT=46384 fi if [ ! -z "$3" ]; then START_PORT=$2 diff --git a/docker/redismod_cluster/redis.conf b/docker/redismod_cluster/redis.conf index 6f5e9c66ff..48f06668a8 100644 --- a/docker/redismod_cluster/redis.conf +++ b/docker/redismod_cluster/redis.conf @@ -4,4 +4,5 @@ loadmodule /usr/lib/redis/modules/redisgraph.so loadmodule /usr/lib/redis/modules/redistimeseries.so loadmodule /usr/lib/redis/modules/rejson.so loadmodule /usr/lib/redis/modules/redisbloom.so -loadmodule /var/opt/redislabs/lib/modules/redisgears.so Plugin /var/opt/redislabs/modules/rg/plugin/gears_python.so Plugin /var/opt/redislabs/modules/rg/plugin/gears_jvm.so JvmOptions -Djava.class.path=/var/opt/redislabs/modules/rg/gear_runtime-jar-with-dependencies.jar JvmPath /var/opt/redislabs/modules/rg/OpenJDK/jdk-11.0.9.1+1/ +loadmodule /var/opt/redislabs/lib/modules/redisgears.so Plugin /var/opt/redislabs/modules/rg/plugin/gears_python.so Plugin /var/opt/redislabs/modules/rg/plugin/gears_jvm.so JvmOptions -Djava.class.path=/var/opt/redislabs/modules/rg/gear_runtime-jar-with-dependencies.jar JvmPath /var/opt/redislabs/modules/rg/OpenJDK/jdk-11.0.9.1+1/ +