diff --git a/bitnami/keycloak/23/debian-12/Dockerfile b/bitnami/keycloak/23/debian-12/Dockerfile index 6f44e11937e5..dc27f3c31a56 100644 --- a/bitnami/keycloak/23/debian-12/Dockerfile +++ b/bitnami/keycloak/23/debian-12/Dockerfile @@ -8,10 +8,10 @@ ARG TARGETARCH LABEL com.vmware.cp.artifact.flavor="sha256:c50c90cfd9d12b445b011e6ad529f1ad3daea45c26d20b00732fae3cd71f6a83" \ org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2024-02-22T15:39:22Z" \ + org.opencontainers.image.created="2024-02-27T11:42:43Z" \ org.opencontainers.image.description="Application packaged by VMware, Inc" \ org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.ref.name="23.0.7-debian-12-r0" \ + org.opencontainers.image.ref.name="23.0.7-debian-12-r1" \ org.opencontainers.image.title="keycloak" \ org.opencontainers.image.vendor="VMware, Inc." \ org.opencontainers.image.version="23.0.7" diff --git a/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak-env.sh b/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak-env.sh index 6bf20238bcb7..23406e793765 100644 --- a/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak-env.sh +++ b/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak-env.sh @@ -109,6 +109,7 @@ export KEYCLOAK_DOMAIN_TMP_DIR="$KEYCLOAK_BASE_DIR/domain/tmp" export WILDFLY_BASE_DIR="/opt/bitnami/wildfly" export KEYCLOAK_VOLUME_DIR="/bitnami/keycloak" export KEYCLOAK_CONF_DIR="$KEYCLOAK_BASE_DIR/conf" +export KEYCLOAK_DEFAULT_CONF_DIR="$KEYCLOAK_BASE_DIR/conf.default" export KEYCLOAK_MOUNTED_CONF_DIR="${KEYCLOAK_MOUNTED_CONF_DIR:-${KEYCLOAK_VOLUME_DIR}/conf}" export KEYCLOAK_INITSCRIPTS_DIR="/docker-entrypoint-initdb.d" export KEYCLOAK_CONF_FILE="keycloak.conf" diff --git a/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh b/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh index 61a78ef118a9..a7283af685ca 100755 --- a/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh +++ b/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh @@ -19,6 +19,12 @@ set -o pipefail print_welcome_page +# We add the copy from default config in the entrypoint to not break users +# bypassing the setup.sh logic. If the file already exists do not overwrite (in +# case someone mounts a configuration file in /opt/bitnami/postgresql/conf) +debug "Copying files from $KEYCLOAK_DEFAULT_CONF_DIR to $KEYCLOAK_CONF_DIR" +cp -nr "$KEYCLOAK_DEFAULT_CONF_DIR"/. "$KEYCLOAK_CONF_DIR" + if [[ "$*" = *"/opt/bitnami/scripts/keycloak/run.sh"* ]]; then info "** Starting keycloak setup **" /opt/bitnami/scripts/keycloak/setup.sh diff --git a/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh b/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh index f9af15768fff..92ec37ddbd21 100755 --- a/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh +++ b/bitnami/keycloak/23/debian-12/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh @@ -20,8 +20,12 @@ set -o pipefail ensure_user_exists "$KEYCLOAK_ADMIN" ensure_user_exists "$KEYCLOAK_DAEMON_USER" --group "$KEYCLOAK_DAEMON_GROUP" -for dir in "$KEYCLOAK_LOG_DIR" "$KEYCLOAK_TMP_DIR" "$KEYCLOAK_VOLUME_DIR" "$KEYCLOAK_CONF_DIR" "$KEYCLOAK_INITSCRIPTS_DIR" "${KEYCLOAK_BASE_DIR}/.installation" "${KEYCLOAK_BASE_DIR}/data" "${KEYCLOAK_BASE_DIR}/lib" "$KEYCLOAK_BASE_DIR" "$KEYCLOAK_PROVIDERS_DIR"; do +for dir in "$KEYCLOAK_LOG_DIR" "$KEYCLOAK_TMP_DIR" "$KEYCLOAK_VOLUME_DIR" "$KEYCLOAK_CONF_DIR" "$KEYCLOAK_DEFAULT_CONF_DIR" "$KEYCLOAK_INITSCRIPTS_DIR" "${KEYCLOAK_BASE_DIR}/.installation" "${KEYCLOAK_BASE_DIR}/data" "${KEYCLOAK_BASE_DIR}/lib" "$KEYCLOAK_BASE_DIR" "$KEYCLOAK_PROVIDERS_DIR"; do ensure_dir_exists "$dir" chmod -R g+rwX "$dir" chown -R "$KEYCLOAK_DAEMON_USER" "$dir" done + +# Copy all initially generated configuration files to the default directory +# (this is to avoid breaking when entrypoint is being overridden) +cp -r "$KEYCLOAK_CONF_DIR"/* "$KEYCLOAK_DEFAULT_CONF_DIR" diff --git a/bitnami/keycloak/README.md b/bitnami/keycloak/README.md index 109366490f43..72f510622223 100644 --- a/bitnami/keycloak/README.md +++ b/bitnami/keycloak/README.md @@ -101,22 +101,23 @@ docker build -t bitnami/APP:latest . #### Read-only environment variables -| Name | Description | Value | -|------------------------------|---------------------------------------------------------|---------------------------------| -| `BITNAMI_VOLUME_DIR` | Directory where to mount volumes. | `/bitnami` | -| `JAVA_HOME` | Java installation directory | `/opt/bitnami/java` | -| `KEYCLOAK_BASE_DIR` | Keycloak base directory | `/opt/bitnami/keycloak` | -| `KEYCLOAK_BIN_DIR` | Keycloak bin directory | `$KEYCLOAK_BASE_DIR/bin` | -| `KEYCLOAK_PROVIDERS_DIR` | Keycloak Wildfly extensions directory | `$KEYCLOAK_BASE_DIR/providers` | -| `KEYCLOAK_LOG_DIR` | Keycloak bin directory | `$KEYCLOAK_PROVIDERS_DIR/log` | -| `KEYCLOAK_TMP_DIR` | Keycloak tmp directory | `$KEYCLOAK_PROVIDERS_DIR/tmp` | -| `KEYCLOAK_DOMAIN_TMP_DIR` | Keycloak tmp directory | `$KEYCLOAK_BASE_DIR/domain/tmp` | -| `WILDFLY_BASE_DIR` | Wildfly base directory | `/opt/bitnami/wildfly` | -| `KEYCLOAK_VOLUME_DIR` | Path to keycloak mount directory | `/bitnami/keycloak` | -| `KEYCLOAK_CONF_DIR` | Keycloak configuration directory | `$KEYCLOAK_BASE_DIR/conf` | -| `KEYCLOAK_INITSCRIPTS_DIR` | Path to keycloak init scripts directory | `/docker-entrypoint-initdb.d` | -| `KEYCLOAK_CONF_FILE` | Name of the keycloak configuration file (relative path) | `keycloak.conf` | -| `KEYCLOAK_DEFAULT_CONF_FILE` | Name of the keycloak configuration file (relative path) | `keycloak.conf` | +| Name | Description | Value | +|------------------------------|---------------------------------------------------------|-----------------------------------| +| `BITNAMI_VOLUME_DIR` | Directory where to mount volumes. | `/bitnami` | +| `JAVA_HOME` | Java installation directory | `/opt/bitnami/java` | +| `KEYCLOAK_BASE_DIR` | Keycloak base directory | `/opt/bitnami/keycloak` | +| `KEYCLOAK_BIN_DIR` | Keycloak bin directory | `$KEYCLOAK_BASE_DIR/bin` | +| `KEYCLOAK_PROVIDERS_DIR` | Keycloak Wildfly extensions directory | `$KEYCLOAK_BASE_DIR/providers` | +| `KEYCLOAK_LOG_DIR` | Keycloak bin directory | `$KEYCLOAK_PROVIDERS_DIR/log` | +| `KEYCLOAK_TMP_DIR` | Keycloak tmp directory | `$KEYCLOAK_PROVIDERS_DIR/tmp` | +| `KEYCLOAK_DOMAIN_TMP_DIR` | Keycloak tmp directory | `$KEYCLOAK_BASE_DIR/domain/tmp` | +| `WILDFLY_BASE_DIR` | Wildfly base directory | `/opt/bitnami/wildfly` | +| `KEYCLOAK_VOLUME_DIR` | Path to keycloak mount directory | `/bitnami/keycloak` | +| `KEYCLOAK_CONF_DIR` | Keycloak configuration directory | `$KEYCLOAK_BASE_DIR/conf` | +| `KEYCLOAK_DEFAULT_CONF_DIR` | Keycloak default configuration directory | `$KEYCLOAK_BASE_DIR/conf.default` | +| `KEYCLOAK_INITSCRIPTS_DIR` | Path to keycloak init scripts directory | `/docker-entrypoint-initdb.d` | +| `KEYCLOAK_CONF_FILE` | Name of the keycloak configuration file (relative path) | `keycloak.conf` | +| `KEYCLOAK_DEFAULT_CONF_FILE` | Name of the keycloak configuration file (relative path) | `keycloak.conf` | ### Extra arguments to Keycloak startup