From 5e1579712ffd249165a7a3fae2bb3d1e318814fc Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 31 Dec 2019 16:50:06 -0800 Subject: [PATCH] Remove 32bit variants for 6.0+ --- .travis.yml | 1 - 6.0-rc/32bit/Dockerfile | 115 ------------------------------ 6.0-rc/32bit/docker-entrypoint.sh | 16 ----- 3 files changed, 132 deletions(-) delete mode 100644 6.0-rc/32bit/Dockerfile delete mode 100755 6.0-rc/32bit/docker-entrypoint.sh diff --git a/.travis.yml b/.travis.yml index cb570d03c..b061dc0af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,6 @@ services: docker env: - VERSION=6.0-rc VARIANT= - - VERSION=6.0-rc VARIANT=32bit - VERSION=6.0-rc VARIANT=alpine - VERSION=5.0 VARIANT= - VERSION=5.0 VARIANT=32bit diff --git a/6.0-rc/32bit/Dockerfile b/6.0-rc/32bit/Dockerfile deleted file mode 100644 index 21a1bc997..000000000 --- a/6.0-rc/32bit/Dockerfile +++ /dev/null @@ -1,115 +0,0 @@ -FROM debian:buster-slim - -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -RUN groupadd -r -g 999 redis && useradd -r -g redis -u 999 redis - -# grab gosu for easy step-down from root -# https://github.com/tianon/gosu/releases -ENV GOSU_VERSION 1.11 -RUN set -eux; \ -# save list of currently installed packages for later so we can clean up - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - dirmngr \ - gnupg \ - wget \ - ; \ - rm -rf /var/lib/apt/lists/*; \ - \ - dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ - \ -# verify the signature - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ - gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ - \ -# clean up fetch dependencies - apt-mark auto '.*' > /dev/null; \ - [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - \ - chmod +x /usr/local/bin/gosu; \ -# verify that the binary works - gosu --version; \ - gosu nobody true - -ENV REDIS_VERSION 6.0-rc1 -ENV REDIS_DOWNLOAD_URL https://github.com/antirez/redis/archive/6.0-rc1.tar.gz -ENV REDIS_DOWNLOAD_SHA 2676012e2fcfe8d41e594b2ae8a05d0a050d2d84c38a0471ae5fe0143e4b0eca - -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - wget \ - \ - gcc \ - libc6-dev-i386 gcc-multilib \ - make \ - ; \ - rm -rf /var/lib/apt/lists/*; \ - \ - wget -O redis.tar.gz "$REDIS_DOWNLOAD_URL"; \ - echo "$REDIS_DOWNLOAD_SHA *redis.tar.gz" | sha256sum -c -; \ - mkdir -p /usr/src/redis; \ - tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1; \ - rm redis.tar.gz; \ - \ -# disable Redis protected mode [1] as it is unnecessary in context of Docker -# (ports are not automatically exposed when running inside Docker, but rather explicitly by specifying -p / -P) -# [1]: https://github.com/antirez/redis/commit/edd4d555df57dc84265fdfb4ef59a4678832f6da - grep -E '^ *createBoolConfig[(]"protected-mode",.*, *1 *,.*[)],$' /usr/src/redis/src/config.c; \ - sed -ri 's!^( *createBoolConfig[(]"protected-mode",.*, *)1( *,.*[)],)$!\10\2!' /usr/src/redis/src/config.c; \ - grep -E '^ *createBoolConfig[(]"protected-mode",.*, *0 *,.*[)],$' /usr/src/redis/src/config.c; \ -# for future reference, we modify this directly in the source instead of just supplying a default configuration flag because apparently "if you specify any argument to redis-server, [it assumes] you are going to specify everything" -# see also https://github.com/docker-library/redis/issues/4#issuecomment-50780840 -# (more exactly, this makes sure the default behavior of "save on SIGTERM" stays functional by default) - \ - make -C /usr/src/redis -j "$(nproc)" 32bit; \ - make -C /usr/src/redis install; \ - \ -# TODO https://github.com/antirez/redis/pull/3494 (deduplicate "redis-server" copies) - serverMd5="$(md5sum /usr/local/bin/redis-server | cut -d' ' -f1)"; export serverMd5; \ - find /usr/local/bin/redis* -maxdepth 0 \ - -type f -not -name redis-server \ - -exec sh -eux -c ' \ - md5="$(md5sum "$1" | cut -d" " -f1)"; \ - test "$md5" = "$serverMd5"; \ - ' -- '{}' ';' \ - -exec ln -svfT 'redis-server' '{}' ';' \ - ; \ - \ - rm -r /usr/src/redis; \ - \ - apt-mark auto '.*' > /dev/null; \ - [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \ - find /usr/local -type f -executable -exec ldd '{}' ';' \ - | awk '/=>/ { print $(NF-1) }' \ - | sort -u \ - | xargs -r dpkg-query --search \ - | cut -d: -f1 \ - | sort -u \ - | xargs -r apt-mark manual \ - ; \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - \ - redis-cli --version; \ - redis-server --version - -RUN mkdir /data && chown redis:redis /data -VOLUME /data -WORKDIR /data - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] - -EXPOSE 6379 -CMD ["redis-server"] diff --git a/6.0-rc/32bit/docker-entrypoint.sh b/6.0-rc/32bit/docker-entrypoint.sh deleted file mode 100755 index 783b65d32..000000000 --- a/6.0-rc/32bit/docker-entrypoint.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -set -e - -# first arg is `-f` or `--some-option` -# or first arg is `something.conf` -if [ "${1#-}" != "$1" ] || [ "${1%.conf}" != "$1" ]; then - set -- redis-server "$@" -fi - -# allow the container to be started with `--user` -if [ "$1" = 'redis-server' -a "$(id -u)" = '0' ]; then - find . \! -user redis -exec chown redis '{}' + - exec gosu redis "$0" "$@" -fi - -exec "$@"