From 59f4c512222c479ec0c5fbbc82927a382d6e2abd Mon Sep 17 00:00:00 2001 From: zagnaan <146335521+zagnaan@users.noreply.github.com> Date: Thu, 15 Jan 2026 12:30:33 +0100 Subject: [PATCH] fix(entrypoint): Preserve $ in passwords during template expansion (#12509) ### What problem does this PR solve? Fix shell variable expansion to preserve $ in password defaults when env vars are unset. Fixes Azure RDS auto-rotated passwords (that contain $) being truncated during template processing. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- docker/entrypoint.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 7770ab8d0..60030dbe2 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -156,8 +156,20 @@ TEMPLATE_FILE="${CONF_DIR}/service_conf.yaml.template" CONF_FILE="${CONF_DIR}/service_conf.yaml" rm -f "${CONF_FILE}" +DEF_ENV_VALUE_PATTERN="\$\{([^:]+):-([^}]+)\}" while IFS= read -r line || [[ -n "$line" ]]; do - eval "echo \"$line\"" >> "${CONF_FILE}" + if [[ "$line" =~ DEF_ENV_VALUE_PATTERN ]]; then + varname="${BASH_REMATCH[1]}" + default="${BASH_REMATCH[2]}" + + if [ -n "${!varname}" ]; then + eval "echo \"$line"\" >> "${CONF_FILE}" + else + echo "$line" | sed -E "s/\\\$\{[^:]+:-([^}]+)\}/\1/g" >> "${CONF_FILE}" + fi + else + eval "echo \"$line\"" >> "${CONF_FILE}" + fi done < "${TEMPLATE_FILE}" export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/"