From 88b7a1030777bebef9613d84b9cc2fc3fb5d9611 Mon Sep 17 00:00:00 2001 From: Greg Orzell Date: Wed, 17 Jul 2019 17:16:28 +0200 Subject: [PATCH] Upgrade to Redis 5.x and get out of the customer container business by using the CLI. --- Dockerfile | 48 ------------------- docker-compose.yml | 38 ++++++++------- docker-data/docker-entrypoint.sh | 9 ---- .../{redis-cluster1.tmpl => redis-1.conf} | 0 .../{redis-cluster2.tmpl => redis-2.conf} | 0 .../{redis-cluster3.tmpl => redis-3.conf} | 0 6 files changed, 20 insertions(+), 75 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker-data/docker-entrypoint.sh rename docker-data/{redis-cluster1.tmpl => redis-1.conf} (100%) rename docker-data/{redis-cluster2.tmpl => redis-2.conf} (100%) rename docker-data/{redis-cluster3.tmpl => redis-3.conf} (100%) diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 0b0e434..0000000 --- a/Dockerfile +++ /dev/null @@ -1,48 +0,0 @@ -FROM redis:3.2 - -MAINTAINER Johan Andersson - -# Some Environment Variables -ENV HOME /root -ENV DEBIAN_FRONTEND noninteractive - -# Install system dependencies -RUN apt-get update -qq && \ - apt-get install --no-install-recommends -yqq \ - net-tools supervisor ruby rubygems locales gettext-base wget && \ - apt-get clean -yqq - -# # Ensure UTF-8 lang and locale -RUN locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LC_ALL en_US.UTF-8 - -RUN gem install redis -v 3.3.3 - -RUN apt-get install -y gcc make g++ build-essential libc6-dev tcl git supervisor ruby - -ARG redis_version=3.2.9 - -RUN wget -qO redis.tar.gz http://download.redis.io/releases/redis-${redis_version}.tar.gz \ - && tar xfz redis.tar.gz -C / \ - && mv /redis-$redis_version /redis - -RUN (cd /redis && make) - -RUN mkdir /redis-conf -RUN mkdir /redis-data - -#COPY ./docker-data/redis-cluster.tmpl /redis-conf/redis-cluster.tmpl -#COPY ./docker-data/redis.tmpl /redis-conf/redis.tmpl - -# Add supervisord configuration -#COPY ./docker-data/supervisord.conf /etc/supervisor/conf.d/supervisord.conf - -# Add startup script -COPY ./docker-data/docker-entrypoint.sh /docker-entrypoint.sh -RUN chmod 755 /docker-entrypoint.sh - -EXPOSE 7000 7001 - -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["redis-cluster"] diff --git a/docker-compose.yml b/docker-compose.yml index 59380d5..03fcabf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,53 +1,55 @@ -version: '3' +version: '3.6' + services: redis1: - image: redis:3 + image: redis:5 ports: - "7000:7000" volumes: - - ./docker-data/redis-cluster1.tmpl:/usr/local/etc/redis/redis.conf + - ./docker-data/redis-1.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf networks: app_net: ipv4_address: 173.17.0.2 redis2: - image: redis:3 + image: redis:5 ports: - "7001:7001" volumes: - - ./docker-data/redis-cluster2.tmpl:/usr/local/etc/redis/redis.conf + - ./docker-data/redis-2.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf networks: app_net: ipv4_address: 173.17.0.3 redis3: - image: redis:3 + image: redis:5 ports: - "7002:7002" volumes: - - ./docker-data/redis-cluster3.tmpl:/usr/local/etc/redis/redis.conf + - ./docker-data/redis-3.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf networks: app_net: ipv4_address: 173.17.0.4 - redis-cluster: - tty: true - build: - context: . - args: - redis_version: '3.2.9' - hostname: server + redis-cluster-setup: + image: redis:5 + command: sh -c " + sleep 5 + && yes yes | redis-cli + --cluster create 173.17.0.2:7000 173.17.0.3:7001 173.17.0.4:7002 + --cluster-replicas 0 + && redis-cli --cluster check 173.17.0.2:7000" + networks: + app_net: depends_on: - redis1 - redis2 - redis3 - networks: - app_net: - ipv4_address: 173.17.0.5 + networks: app_net: driver: bridge ipam: driver: default config: - - subnet: 173.17.0.0/16 + - subnet: 173.17.0.0/16 \ No newline at end of file diff --git a/docker-data/docker-entrypoint.sh b/docker-data/docker-entrypoint.sh deleted file mode 100644 index 0b08718..0000000 --- a/docker-data/docker-entrypoint.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -if [ "$1" = 'redis-cluster' ]; then - sleep 10 - echo "yes" | ruby /redis/src/redis-trib.rb create --replicas 0 173.17.0.2:7000 173.17.0.3:7001 173.17.0.4:7002 - echo "DONE" -else - exec "$@" -fi diff --git a/docker-data/redis-cluster1.tmpl b/docker-data/redis-1.conf similarity index 100% rename from docker-data/redis-cluster1.tmpl rename to docker-data/redis-1.conf diff --git a/docker-data/redis-cluster2.tmpl b/docker-data/redis-2.conf similarity index 100% rename from docker-data/redis-cluster2.tmpl rename to docker-data/redis-2.conf diff --git a/docker-data/redis-cluster3.tmpl b/docker-data/redis-3.conf similarity index 100% rename from docker-data/redis-cluster3.tmpl rename to docker-data/redis-3.conf