haste (production-redis)

Published 2025-03-20 15:51:31 -04:00 by colin in colin/haste

Installation

docker pull git.nixc.us/colin/haste:production-redis
sha256:5b5620416141cd1987cdedc8f86ee2bd426d548958500082cd9a9282f72c88b2

Image Layers

ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=20.04
ADD file:4809da414c2d478b4d991cbdaa2df457f2b3d07d0ff6cf673f09a66f90833e81 in /
CMD ["/bin/bash"]
SHELL [/bin/bash -c]
/bin/bash -c groupadd -r keydb && useradd -r -g keydb keydb
ENV GOSU_VERSION=1.14
/bin/bash -c set -eux; 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"; 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; 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; gosu --version; gosu nobody true
ARG BRANCH
|1 BRANCH=RELEASE_6_3_4 /bin/bash -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends dpkg-dev pkg-config ca-certificates build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev libbz2-dev libzstd-dev liblz4-dev libsnappy-dev libssl-dev git; cd /tmp && git clone --branch $BRANCH https://github.com/Snapchat/KeyDB.git --recursive; cd /tmp/KeyDB; grep -E '^ *createBoolConfig[(]"protected-mode",.*, *1 *,.*[)],$' ./src/config.cpp; sed -ri 's!^( *createBoolConfig[(]"protected-mode",.*, *)1( *,.*[)],)$!\10\2!' ./src/config.cpp; grep -E '^ *createBoolConfig[(]"protected-mode",.*, *0 *,.*[)],$' ./src/config.cpp; make -j$(nproc) BUILD_TLS=yes ENABLE_FLASH=yes; cd src; strip keydb-cli keydb-benchmark keydb-check-rdb keydb-check-aof keydb-diagnostic-tool keydb-sentinel keydb-server; mv keydb-server keydb-cli keydb-benchmark keydb-check-rdb keydb-check-aof keydb-diagnostic-tool keydb-sentinel /usr/local/bin/; echo $savedAptMark; 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) }' | sed 's:.*/::' | 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; rm -rf /var/lib/apt/lists/*; RUN mkdir /data && chown keydb:keydb /data; mkdir /flash && chown keydb:keydb /flash; mkdir -p /etc/keydb; cp /tmp/KeyDB/keydb.conf /etc/keydb/; sed -i 's/^\(daemonize .*\)$/# \1/' /etc/keydb/keydb.conf; sed -i 's/^\(dir .*\)$/# \1\ndir \/data/' /etc/keydb/keydb.conf; sed -i 's/^\(logfile .*\)$/# \1/' /etc/keydb/keydb.conf; sed -i 's/protected-mode yes/protected-mode no/g' /etc/keydb/keydb.conf; sed -i 's/^\(bind .*\)$/# \1/' /etc/keydb/keydb.conf; cd /usr/local/bin; ln -s keydb-cli redis-cli; cd /etc/keydb; ln -s keydb.conf redis.conf; rm -rf /tmp/*
|1 BRANCH=RELEASE_6_3_4 /bin/bash -c set -eux; echo '#!/bin/sh' > /usr/local/bin/docker-entrypoint.sh; echo 'set -e' >> /usr/local/bin/docker-entrypoint.sh; echo "# first arg is '-f' or '--some-option'" >> /usr/local/bin/docker-entrypoint.sh; echo "# or first arg is `something.conf`" >> /usr/local/bin/docker-entrypoint.sh; echo 'if [ "${1#-}" != "$1" ] || [ "${1%.conf}" != "$1" ]; then' >> /usr/local/bin/docker-entrypoint.sh; echo ' set -- keydb-server "$@"' >> /usr/local/bin/docker-entrypoint.sh; echo 'fi' >> /usr/local/bin/docker-entrypoint.sh; echo '# if KEYDB_PASSWORD is set, add it to the arguments' >> /usr/local/bin/docker-entrypoint.sh; echo 'if [ -n "$KEYDB_PASSWORD" ]; then' >> /usr/local/bin/docker-entrypoint.sh; echo ' set -- "$@" --requirepass "${KEYDB_PASSWORD}"' >> /usr/local/bin/docker-entrypoint.sh; echo 'fi' >> /usr/local/bin/docker-entrypoint.sh; echo "# allow the container to be started with `--user`" >> /usr/local/bin/docker-entrypoint.sh; echo 'if [ "$1" = "keydb-server" -a "$(id -u)" = "0" ]; then' >> /usr/local/bin/docker-entrypoint.sh; echo " find . \! -user keydb -exec chown keydb '{}' +" >> /usr/local/bin/docker-entrypoint.sh; echo ' exec gosu keydb "$0" "$@"' >> /usr/local/bin/docker-entrypoint.sh; echo 'fi' >> /usr/local/bin/docker-entrypoint.sh; echo 'exec "$@"' >> /usr/local/bin/docker-entrypoint.sh; chmod +x /usr/local/bin/docker-entrypoint.sh
VOLUME [/data]
WORKDIR /data
ENV KEYDB_PRO_DIRECTORY=/usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 6379
CMD ["keydb-server" "/etc/keydb/keydb.conf"]

Labels

Key Value
com.docker.compose.project haste
com.docker.compose.service redis
com.docker.compose.version 2.30.3
org.opencontainers.image.ref.name ubuntu
org.opencontainers.image.version 20.04
Details
Container
2025-03-20 15:51:31 -04:00
26
OCI / Docker
linux/amd64
52 MiB
Versions (8) View all
production-haste 2025-03-20
production-redis 2025-03-20
staging-haste 2025-03-20
staging-redis 2025-03-20
haste-staging 2024-01-19