diff --git a/docker/redis/Dockerfile b/docker/redis/Dockerfile index b7899ce..f76e126 100644 --- a/docker/redis/Dockerfile +++ b/docker/redis/Dockerfile @@ -2,4 +2,7 @@ FROM redis:7.2.4-alpine RUN apk add --upgrade apk-tools RUN apk upgrade --available -RUN apk del go \ No newline at end of file +COPY docker-entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-entrypoint.sh +RUN apk add --no-cache su-exec +RUN rm /usr/local/bin/gosu \ No newline at end of file diff --git a/docker/redis/docker-entrypoint.sh b/docker/redis/docker-entrypoint.sh new file mode 100644 index 0000000..5fa6a4d --- /dev/null +++ b/docker/redis/docker-entrypoint.sh @@ -0,0 +1,24 @@ +#!/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 su-exec redis "$0" "$@" +fi + +# set an appropriate umask (if one isn't set already) +# - https://github.com/docker-library/redis/issues/305 +# - https://github.com/redis/redis/blob/bb875603fb7ff3f9d19aad906bd45d7db98d9a39/utils/systemd-redis_server.service#L37 +um="$(umask)" +if [ "$um" = '0022' ]; then + umask 0077 +fi + +exec "$@" \ No newline at end of file