镜像构建历史
# 2026-10-22 05:22:06 0.00B 设置默认要执行的命令
CMD ["redis-server"]
# 2026-10-22 05:22:06 0.00B 声明容器运行时监听的端口
EXPOSE map[6379/tcp:{}]
# 2026-10-22 05:22:06 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
# 2026-10-22 05:22:06 4.85KB 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
# 2026-10-22 05:22:06 0.00B 设置工作目录为/data
WORKDIR /data
# 2026-10-22 05:22:06 0.00B 执行命令并创建新的镜像层
RUN |2 REDIS_DOWNLOAD_URL=https://github.com/redis/redis/releases/download/8.10.2/redis-full.tar.gz REDIS_DOWNLOAD_SHA=ae6973de9b6ad8e6cf21b1e764abccab59200689af6aabce10d4cf6bbb2e253f /bin/sh -c mkdir /data && chown redis:redis /data # buildkit
# 2026-10-22 05:22:06 109.18MB 执行命令并创建新的镜像层
RUN |2 REDIS_DOWNLOAD_URL=https://github.com/redis/redis/releases/download/8.10.2/redis-full.tar.gz REDIS_DOWNLOAD_SHA=ae6973de9b6ad8e6cf21b1e764abccab59200689af6aabce10d4cf6bbb2e253f /bin/sh -c set -eux; apk add --no-cache --virtual .build-deps coreutils dpkg-dev dpkg gcc linux-headers make musl-dev openssl-dev g++; arch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; case "$arch" in 'amd64' | 'arm64') BUILD_WITH_MODULES=yes ;; *) echo >&2 "Modules are NOT supported! unsupported architecture: '$arch'"; BUILD_WITH_MODULES=no ;; esac; if [ "$BUILD_WITH_MODULES" = "yes" ]; then apk add --no-cache --virtual .module-build-deps autoconf automake bash bsd-compat-headers build-base cargo clang21 clang21-static clang21-libclang cmake curl g++ git libffi-dev libgcc libtool llvm21-dev lld21 ncurses-dev openssh openssl py-virtualenv py3-cryptography py3-pip py3-virtualenv python3 python3-dev rsync tar unzip which xsimd xz; fi; pip install -q --upgrade setuptools && pip install -q --upgrade pip && PIP_BREAK_SYSTEM_PACKAGES=1 pip install -q addict toml jinja2 ramp-packer ; 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; 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; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; extraJemallocConfigureFlags="--build=$gnuArch"; dpkgArch="$(dpkg --print-architecture)"; case "${dpkgArch##*-}" in amd64 | i386 | x32) extraJemallocConfigureFlags="$extraJemallocConfigureFlags --with-lg-page=12" ;; *) extraJemallocConfigureFlags="$extraJemallocConfigureFlags --with-lg-page=16" ;; esac; extraJemallocConfigureFlags="$extraJemallocConfigureFlags --with-lg-hugepage=21"; grep -F 'cd jemalloc && ./configure ' /usr/src/redis/deps/Makefile; sed -ri 's!cd jemalloc && ./configure !&'"$extraJemallocConfigureFlags"' !' /usr/src/redis/deps/Makefile; grep -F "cd jemalloc && ./configure $extraJemallocConfigureFlags " /usr/src/redis/deps/Makefile; export RUST_DYN_CRT=1; export PATH="/usr/lib/llvm21/bin:$PATH"; export BUILD_TLS=yes; if [ "$BUILD_WITH_MODULES" = "yes" ]; then export LTO=1; make -C /usr/src/redis/modules install-rust INSTALL_RUST_TOOLCHAIN=yes; make -C /usr/src/redis -j "$(nproc)" deploy; make -C /usr/src/redis/modules uninstall-rust INSTALL_RUST_TOOLCHAIN=yes; else make -C /usr/src/redis -j "$(nproc)" deploy redis; fi; rm -r /usr/src/redis; runDeps="$( scanelf --needed --nobanner --format '%n#p' --recursive /usr/local | tr ',' '\n' | sort -u | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' )"; apk add --no-network --virtual .redis-rundeps $runDeps; if [ "$BUILD_WITH_MODULES" = "yes" ]; then apk del --no-network .module-build-deps; fi; apk del --no-network .build-deps; rm -rf ~/.cache ~/.gitconfig; redis-cli --version; redis-server --version; # buildkit
# 2026-10-22 05:22:06 0.00B 定义构建参数
ARG REDIS_DOWNLOAD_SHA=ae6973de9b6ad8e6cf21b1e764abccab59200689af6aabce10d4cf6bbb2e253f
# 2026-10-22 05:22:06 0.00B 定义构建参数
ARG REDIS_DOWNLOAD_URL=https://github.com/redis/redis/releases/download/8.10.2/redis-full.tar.gz
# 2026-10-22 05:22:06 0.00B 设置环境变量 REDIS_VERSION
ENV REDIS_VERSION=8.10.2
# 2026-10-22 05:11:35 699.87KB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apk add --no-cache tzdata setpriv ; # buildkit
# 2026-10-22 05:11:35 3.05KB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; addgroup -S -g 1000 redis; adduser -S -G redis -u 999 redis # buildkit
# 2026-10-22 04:46:49 0.00B 设置默认要执行的命令
CMD ["/bin/sh"]
# 2026-10-22 04:46:49 8.66MB 复制文件或目录到容器中
ADD alpine-minirootfs-3.23.7-aarch64.tar.gz / # buildkit
镜像信息
{
"Id": "sha256:9eba214ac186cd19f8675fd248d92db3bfef0180773990b304b378cbe384c45f",
"RepoTags": [
"redis:8.10.2-alpine",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:8.10.2-alpine-linuxarm64"
],
"RepoDigests": [
"redis@sha256:0bf6577d7774e592b29d093e3ac9390eb91e13d72c21e506afce736de5e0eeb0",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis@sha256:e24aed9793085995d104d30b3dec66d6b5ec3e98071d9958ee5bcea2e1f3eb63"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-10-21T21:22:06.798487339Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"6379/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"REDIS_VERSION=8.10.2"
],
"Cmd": [
"redis-server"
],
"Image": "",
"Volumes": null,
"WorkingDir": "/data",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "arm64",
"Variant": "v8",
"Os": "linux",
"Size": 118547095,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/84ae53dfbd0b62a635be10539ed53d9bd6804efae219cf6db2ebafaa3d1673a8/diff:/var/lib/docker/overlay2/37a4bd12e80b0dfdb27e992ea421a874f5e1642239a3b0a7232c3c4cb6227359/diff:/var/lib/docker/overlay2/9693ad9f4d89bc867916cc81b8a664ebd530a96a1a4c800efeee438ce0504ac9/diff:/var/lib/docker/overlay2/7f8aaa2e2145744e7fa6b0d7c6b47ab0fcda3e8939b62b44273272e3dc00d349/diff:/var/lib/docker/overlay2/c6638d6a542eb9c7bd645ba55e8b0386b063ebd55bc89e0df7e047bc76fa64cd/diff:/var/lib/docker/overlay2/2076d78022fef8e67855744c61260084c43d526af471a15f278c7d2c4f3e02db/diff",
"MergedDir": "/var/lib/docker/overlay2/3736e9fa22b03e297b8327051b178e84d0a4ad4d391b4a41d4b87c2425cd5adf/merged",
"UpperDir": "/var/lib/docker/overlay2/3736e9fa22b03e297b8327051b178e84d0a4ad4d391b4a41d4b87c2425cd5adf/diff",
"WorkDir": "/var/lib/docker/overlay2/3736e9fa22b03e297b8327051b178e84d0a4ad4d391b4a41d4b87c2425cd5adf/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:2f7dba9f9c89c5b6e380a5b9715b862f20d7e33da6e6923a90f089210f2a5de9",
"sha256:6d8d569919a18748b7662da832bae70afcb3a240c926b18f9ca0ac696e87ad1f",
"sha256:74d803dccf19a99e7f49f2428af90f2917606e6f1be8b2ba80da1e5a85007e3f",
"sha256:67da95e08c12e7bd2b4b1ff2e8488829c9f3b316e90c9c7e876cf689b6e7e4d6",
"sha256:0162571063d3cbf9c3013b143619d2998d8bc960a96058a46853b1f1f7245e00",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:867d640deb3493c47b8f1f8866694600277ba684cf1e1fcd0908b3ce3d8c1e3b"
]
},
"Metadata": {
"LastTagTime": "2026-10-26T15:40:17.167764731+08:00"
}
}