- Shell 73.5%
- Dockerfile 21.9%
- Makefile 3.7%
- Go Template 0.9%
| charts/redis-cluster | ||
| compat | ||
| docs/releases | ||
| manifests | ||
| marketplace/yandex | ||
| releases/8.8.0-niceos13-r1 | ||
| rootfs | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| .niceos-source.yaml | ||
| catalog.fragment.yaml | ||
| CHANGELOG.md | ||
| COMPATIBILITY.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| MIGRATION.md | ||
| NOTICE | ||
| README.md | ||
| RELEASE.yaml | ||
NiceOS Redis Cluster Container
NiceOS.Container based Redis Cluster image with a Bitnami-compatible runtime contract for migration from historical
bitnami/redis-clusterworkflows and charts.
docker.io/niceos/redis-cluster is built on the NiceOS.Container RPM/glibc stream. It preserves the runtime layout expected by Bitnami-style Redis Cluster images while replacing Debian/minideb/apt/Stacksmith internals with NiceOS RPM packages, a reproducible NiceOS root filesystem, and shared NiceOS Bitnami compatibility scripts from niceos-bitnami-compat-scripts.
This image is not an official Bitnami, Broadcom, VMware, or Redis image and is not endorsed by those projects or companies. It is a NiceSOFT/NiceOS compatibility target intended to help users migrate existing automation, Helm charts, CI jobs, and container workflows that expect the historical Bitnami runtime contract.
TL;DR
Development-only single node check:
docker run --rm \
-e ALLOW_EMPTY_PASSWORD=yes \
-e REDIS_NODES=127.0.0.1 \
-p 6379:6379 \
docker.io/niceos/redis-cluster:8.8.0-niceos13-r1
Six-node local cluster:
docker compose up -d
./tests/cluster-compose-smoke.sh docker.io/niceos/redis-cluster:8.8.0-niceos13-r1
Compatibility goal
The goal is not to copy Bitnami internals. The goal is to preserve the runtime contract existing deployments commonly depend on.
| Contract area | NiceOS status |
|---|---|
/opt/bitnami root |
preserved |
/opt/bitnami/redis |
preserved |
/opt/bitnami/redis/bin/redis-server |
preserved as compatibility command path |
/opt/bitnami/redis/bin/redis-cli |
preserved as compatibility command path |
/opt/bitnami/redis/etc |
preserved |
/opt/bitnami/redis/etc.default |
preserved |
/opt/bitnami/redis/mounted-etc |
preserved |
/opt/bitnami/redis/tmp |
preserved |
/opt/bitnami/scripts/redis-cluster/entrypoint.sh |
preserved |
/opt/bitnami/scripts/redis-cluster/setup.sh |
preserved |
/opt/bitnami/scripts/redis-cluster/run.sh |
preserved |
/bitnami/redis/data |
persistence path preserved |
| default user | 1001 |
| Redis port | 6379 |
| Redis cluster bus port | 16379 for default Redis port |
REDIS_* environment variables |
preserved where relevant |
*_FILE handling |
preserved for Redis Cluster variables |
| Debian/minideb/apt/Stacksmith | replaced by NiceOS/RPM |
| final image package manager | removed |
Important NiceOS packaging rule
Do not vendor the common Bitnami shell libraries into this repository. The following files are provided by the RPM package niceos-bitnami-compat-scripts:
/opt/bitnami/scripts/libbitnami.sh
/opt/bitnami/scripts/libfile.sh
/opt/bitnami/scripts/libfs.sh
/opt/bitnami/scripts/libhook.sh
/opt/bitnami/scripts/liblog.sh
/opt/bitnami/scripts/libnet.sh
/opt/bitnami/scripts/libos.sh
/opt/bitnami/scripts/libpersistence.sh
/opt/bitnami/scripts/libservice.sh
/opt/bitnami/scripts/libvalidations.sh
/opt/bitnami/scripts/libversion.sh
/opt/bitnami/scripts/libwebserver.sh
This app repository only carries Redis-specific compatibility logic:
/opt/bitnami/scripts/libredis.sh
/opt/bitnami/scripts/librediscluster.sh
/opt/bitnami/scripts/redis-cluster-env.sh
/opt/bitnami/scripts/redis-cluster/entrypoint.sh
/opt/bitnami/scripts/redis-cluster/setup.sh
/opt/bitnami/scripts/redis-cluster/run.sh
/opt/bitnami/scripts/redis-cluster/postunpack.sh
Image tags
Immutable tag:
docker.io/niceos/redis-cluster:8.8.0-niceos13-r1
ghcr.io/niceos-containers/redis-cluster:8.8.0-niceos13-r1
Version tag:
docker.io/niceos/redis-cluster:8.8.0
ghcr.io/niceos-containers/redis-cluster:8.8.0
Convenience channel:
docker.io/niceos/redis-cluster:latest
ghcr.io/niceos-containers/redis-cluster:latest
For production, prefer immutable tags or digest-pinned references.
Included software
| Component | Version/source |
|---|---|
| NiceOS.Container | 13 RPM stream |
| Redis | 8.8.0 from NiceOS redis RPM |
| NiceOS Bitnami compatibility libraries | niceos-bitnami-compat-scripts RPM |
| nss_wrapper | NiceOS RPM, exposed through /opt/bitnami/common/lib/libnss_wrapper.so |
| render-template | NiceOS compatibility RPM when available |
| CA certificates/OpenSSL | NiceOS RPMs |
Environment variables
| Variable | Default | Purpose |
|---|---|---|
APP_VERSION |
8.8.0 |
Redis version marker |
IMAGE_REVISION |
1 |
NiceOS image revision |
BITNAMI_APP_NAME |
redis-cluster |
Bitnami-style app identifier |
BITNAMI_ROOT_DIR |
/opt/bitnami |
Bitnami-style root |
BITNAMI_VOLUME_DIR |
/bitnami |
Bitnami-style volume root |
REDIS_DATA_DIR |
/bitnami/redis/data |
Redis persistence directory |
REDIS_PORT_NUMBER |
6379 |
Plain Redis port |
REDIS_PASSWORD |
empty | Password for default user |
ALLOW_EMPTY_PASSWORD |
no |
Development-only passwordless mode |
REDIS_NODES |
empty | Required cluster node list |
REDIS_CLUSTER_CREATOR |
no |
Create cluster from this node |
REDIS_CLUSTER_REPLICAS |
1 |
Replica count for cluster creation |
REDIS_CLUSTER_DYNAMIC_IPS |
yes |
Update nodes.conf when pod/container IPs change |
REDIS_CLUSTER_ANNOUNCE_HOSTNAME |
empty | Cluster announced hostname |
REDIS_CLUSTER_ANNOUNCE_IP |
empty | Cluster announced IP when dynamic IPs are disabled |
REDIS_CLUSTER_ANNOUNCE_PORT |
empty | Cluster announced client port |
REDIS_CLUSTER_ANNOUNCE_BUS_PORT |
empty | Cluster announced bus port |
REDIS_TLS_ENABLED |
no |
Enable Redis TLS |
REDIS_TLS_PORT_NUMBER |
6379 |
TLS Redis port |
REDIS_TLS_CERT_FILE |
empty | TLS certificate file |
REDIS_TLS_KEY_FILE |
empty | TLS key file |
REDIS_TLS_CA_FILE |
empty | TLS CA file |
REDIS_ACLFILE |
empty | ACL file path |
REDIS_OVERRIDES_FILE |
/opt/bitnami/redis/mounted-etc/overrides.conf |
Optional extra config |
NSS_WRAPPER_LIB |
/opt/bitnami/common/lib/libnss_wrapper.so |
arbitrary UID support |
Most Redis variables also support *_FILE variants.
Build
make build
Equivalent explicit command:
podman build --format docker --no-cache \
--build-arg NICEOS_VERSION=13 \
--build-arg APP_VERSION=8.8.0 \
--build-arg IMAGE_REVISION=1 \
-t docker.io/niceos/redis-cluster:8.8.0-niceos13-r1 \
-t docker.io/niceos/redis-cluster:8.8.0 \
-t docker.io/niceos/redis-cluster:latest .
Test
make smoke
make compat
make cluster
Yandex Cloud Marketplace
For Yandex Marketplace, publish the image into the publisher's Yandex Container Registry and point the Marketplace Helm chart values to that registry. Keep public Docker Hub/GHCR tags for discovery, but the Marketplace product should use Yandex registry image references.
Example retag:
podman tag docker.io/niceos/redis-cluster:8.8.0-niceos13-r1 \
cr.yandex/<registry-id>/nicesoft/redis-cluster/redis-cluster:8.8.0-niceos13-r1
podman push cr.yandex/<registry-id>/nicesoft/redis-cluster/redis-cluster:8.8.0-niceos13-r1
Registries
Docker Hub:
docker.io/niceos/redis-cluster:8.8.0-niceos13-r1
docker.io/niceos/redis-cluster:8.8.0
docker.io/niceos/redis-cluster:latest
GitHub Container Registry:
ghcr.io/niceos-containers/redis-cluster:8.8.0-niceos13-r1
ghcr.io/niceos-containers/redis-cluster:8.8.0
ghcr.io/niceos-containers/redis-cluster:latest
AWS ECR Public:
public.ecr.aws/t5j6z0j2/redis-cluster:8.8.0-niceos13-r1
public.ecr.aws/t5j6z0j2/redis-cluster:8.8.0
public.ecr.aws/t5j6z0j2/redis-cluster:latest
Yandex Container Registry:
cr.yandex/crpq1j7glriabglplk5c/nicesoft/redis-cluster/redis-cluster:8.8.0-niceos13-r1
cr.yandex/crpq1j7glriabglplk5c/nicesoft/redis-cluster/redis-cluster:8.8.0
Digests:
- Docker Hub immutable digest:
docker.io/niceos/redis-cluster@sha256:0c5eea4528889e2dca27d1e0d843fa745c44bc1a846f698320535869fba77cb3 - GHCR immutable digest:
ghcr.io/niceos-containers/redis-cluster@sha256:0c5eea4528889e2dca27d1e0d843fa745c44bc1a846f698320535869fba77cb3 - AWS ECR Public immutable digest:
public.ecr.aws/t5j6z0j2/redis-cluster@sha256:0c5eea4528889e2dca27d1e0d843fa745c44bc1a846f698320535869fba77cb3 - Yandex Container Registry immutable digest:
cr.yandex/crpq1j7glriabglplk5c/nicesoft/redis-cluster/redis-cluster@sha256:0c5eea4528889e2dca27d1e0d843fa745c44bc1a846f698320535869fba77cb3