[bitnami/keycloak] Support for h2 database (#22776) (#22777)

Signed-off-by: Andre Böhlke <ab@kryptance.de>
Co-authored-by: Andre Böhlke <ab@kryptance.de>
This commit is contained in:
André Böhlke
2023-03-06 11:30:53 +01:00
committed by GitHub
co-authored by Andre Böhlke
parent e2f0447a5b
commit 3511f34290
3 changed files with 28 additions and 15 deletions
@@ -151,6 +151,7 @@ export KEYCLOAK_ROOT_LOG_LEVEL="${KEYCLOAK_ROOT_LOG_LEVEL:-INFO}"
export KEYCLOAK_PROXY="${KEYCLOAK_PROXY:-passthrough}"
export KEYCLOAK_PRODUCTION="${KEYCLOAK_PRODUCTION:-false}"
export KEYCLOAK_EXTRA_ARGS_PREPENDED="${KEYCLOAK_EXTRA_ARGS_PREPENDED:-}"
export KEYCLOAK_DATABASE_VENDOR="${KEYCLOAK_DATABASE_VENDOR:-postgresql}"
KEYCLOAK_DATABASE_HOST="${KEYCLOAK_DATABASE_HOST:-"${DB_ADDR:-}"}"
export KEYCLOAK_DATABASE_HOST="${KEYCLOAK_DATABASE_HOST:-postgresql}"
KEYCLOAK_DATABASE_PORT="${KEYCLOAK_DATABASE_PORT:-"${DB_PORT:-}"}"
@@ -132,10 +132,14 @@ keycloak_configure_database() {
jdbc_params="$(echo "$KEYCLOAK_JDBC_PARAMS" | sed -E '/^$|^\&.+$/!s/^/\&/;s/\&/\\&/g')"
info "Configuring database settings"
keycloak_conf_set "db" "postgres"
keycloak_conf_set "db-username" "$KEYCLOAK_DATABASE_USER"
keycloak_conf_set "db-password" "$KEYCLOAK_DATABASE_PASSWORD"
keycloak_conf_set "db-url" "jdbc:postgresql://${KEYCLOAK_DATABASE_HOST}:${KEYCLOAK_DATABASE_PORT}/${KEYCLOAK_DATABASE_NAME}?currentSchema=${KEYCLOAK_DATABASE_SCHEMA}${jdbc_params}"
if [[ "KEYCLOAK_DATABASE_VENDOR" == "postgresql" ]]; then
keycloak_conf_set "db" "postgres"
keycloak_conf_set "db-username" "$KEYCLOAK_DATABASE_USER"
keycloak_conf_set "db-password" "$KEYCLOAK_DATABASE_PASSWORD"
keycloak_conf_set "db-url" "jdbc:postgresql://${KEYCLOAK_DATABASE_HOST}:${KEYCLOAK_DATABASE_PORT}/${KEYCLOAK_DATABASE_NAME}?currentSchema=${KEYCLOAK_DATABASE_SCHEMA}${jdbc_params}"
else
keycloak_conf_set "db" "$KEYCLOAK_DATABASE_VENDOR"
fi
}
########################
@@ -276,17 +280,19 @@ keycloak_configure_spi_tls() {
#########################
keycloak_initialize() {
# Clean to avoid issues when running docker restart
# Wait for database
info "Trying to connect to PostgreSQL server $KEYCLOAK_DATABASE_HOST..."
if ! retry_while "wait-for-port --host $KEYCLOAK_DATABASE_HOST --timeout 10 $KEYCLOAK_DATABASE_PORT" "$KEYCLOAK_INIT_MAX_RETRIES"; then
error "Unable to connect to host $KEYCLOAK_DATABASE_HOST"
exit 1
else
info "Found PostgreSQL server listening at $KEYCLOAK_DATABASE_HOST:$KEYCLOAK_DATABASE_PORT"
fi
if [[ "KEYCLOAK_DATABASE_VENDOR" == "postgresql" ]]; then
# Wait for database
info "Trying to connect to PostgreSQL server $KEYCLOAK_DATABASE_HOST..."
if ! retry_while "wait-for-port --host $KEYCLOAK_DATABASE_HOST --timeout 10 $KEYCLOAK_DATABASE_PORT" "$KEYCLOAK_INIT_MAX_RETRIES"; then
error "Unable to connect to host $KEYCLOAK_DATABASE_HOST"
exit 1
else
info "Found PostgreSQL server listening at $KEYCLOAK_DATABASE_HOST:$KEYCLOAK_DATABASE_PORT"
fi
if ! is_dir_empty "$KEYCLOAK_MOUNTED_CONF_DIR"; then
cp -Lr "$KEYCLOAK_MOUNTED_CONF_DIR"/* "$KEYCLOAK_CONF_DIR"
if ! is_dir_empty "$KEYCLOAK_MOUNTED_CONF_DIR"; then
cp -Lr "$KEYCLOAK_MOUNTED_CONF_DIR"/* "$KEYCLOAK_CONF_DIR"
fi
fi
keycloak_configure_database
keycloak_configure_metrics
+7 -1
View File
@@ -82,7 +82,13 @@ The Bitnami Keycloak container can create a default admin user by setting the fo
* `KEYCLOAK_MANAGEMENT_USER`: WildFly default management user. Default: **manager**.
* `KEYCLOAK_MANAGEMENT_PASSWORD`: WildFly default management password. Default: **bitnami1**.
### Connecting to a PostgreSQL database
### Connecting to a database
The Bitnami Keycloak container can connect to a database by setting the following environment variables:
- `KEYCLOAK_DATABASE_VENDOR`: Database vendor. Default: **postgres**. Use **dev-mem** or **dev-file** to use an in-memory or file-based database for development purposes.
### PostgreSQL database connection configuration
The Bitnami Keycloak container requires a PostgreSQL database to work. This is configured with the following environment variables: