Drop-in Keycloak distribution that can run its caches on Redis instead of Infinispan. Apache 2.0.
1.0K
A drop-in Keycloak distribution that can run its caches on Redis instead of embedded Infinispan. Same admin console, same database, same SPIs. You pick the cache backend at boot with one environment variable. When you don't pick Redis, Locke is the Keycloak it was built from, unchanged.
Keycloak gives you the key. Locke gives you the choice.
Both backends ship in the same image. Choose with one variable.
# Default: embedded Infinispan, identical to upstream Keycloak
docker run --rm -p 8080:8080 \
-e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
skycloak/locke:26.6.2-2 start-dev
# Redis backend: point it at any Redis / Valkey / wire-compatible store
docker run --rm -p 8080:8080 \
-e KC_CACHE=redis -e KC_CACHE_REDIS_URL=redis://my-redis:6379 \
-e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
skycloak/locke:26.6.2-2 start-dev
| Option | Default | Purpose |
|---|---|---|
KC_CACHE | infinispan | Cache backend: infinispan or redis |
KC_CACHE_REDIS_URL | (none) | Redis connection URL (required when KC_CACHE=redis) |
Every other Keycloak option works exactly as upstream.
Locke uses composite versioning: <keycloak-version>-<locke-build>. 26.6.2-2 means "Keycloak 26.6.2, Locke build 2." The latest build on each line carries the current Redis client fixes.
| Tag | Built from Keycloak | Status |
|---|---|---|
26.6.2-2 | 26.6.2 | current |
26.6.1-2 | 26.6.1 | maintained |
26.3.5-3 | 26.3.5 | maintained |
latest tracks the current line. Images are multi-arch: linux/amd64 and linux/arm64.
Also published to ghcr.io/sky-cloak/locke and quay.io/skycloak/locke.
Don't want to operate this yourself? Skycloak runs managed Keycloak (and Locke) for you.
Content type
Image
Digest
sha256:a6f9f4e95…
Size
262.1 MB
Last updated
12 days ago
docker pull skycloak/locke