You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by he...@apache.org on 2025/12/16 07:14:29 UTC
(doris) branch master updated: [fix](docker) fix_parse_config_file (#59039)
This is an automated email from the ASF dual-hosted git repository.
hellostephen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 63ed2382ce2 [fix](docker) fix_parse_config_file (#59039)
63ed2382ce2 is described below
commit 63ed2382ce2fd556c6be6b743ea321e35fe2a29c
Author: catpineapple <ca...@gmail.com>
AuthorDate: Tue Dec 16 15:14:22 2025 +0800
[fix](docker) fix_parse_config_file (#59039)
---
.../be/resource/be_disaggregated_entrypoint.sh | 14 +++++++---
.../be/resource/be_disaggregated_prestop.sh | 23 ++++++++++++++---
.../runtime/be/resource/be_disaggregated_probe.sh | 22 +++++++++++++---
docker/runtime/be/resource/be_entrypoint.sh | 14 +++++++---
docker/runtime/be/resource/be_prestop.sh | 19 ++++++++++++--
.../fe/resource/fe_disaggregated_entrypoint.sh | 30 ++++++++++++++++++----
.../fe/resource/fe_disaggregated_prestop.sh | 20 +++++++++++++--
.../runtime/fe/resource/fe_disaggregated_probe.sh | 21 ++++++++++++---
docker/runtime/fe/resource/fe_entrypoint.sh | 13 ++++++++--
docker/runtime/fe/resource/fe_prestop.sh | 20 +++++++++++++--
.../ms/resource/ms_disaggregated_prestop.sh | 2 +-
.../runtime/ms/resource/ms_disaggregated_probe.sh | 16 +++++++++---
12 files changed, 181 insertions(+), 33 deletions(-)
diff --git a/docker/runtime/be/resource/be_disaggregated_entrypoint.sh b/docker/runtime/be/resource/be_disaggregated_entrypoint.sh
index dc761aa2094..77dd9a09b42 100755
--- a/docker/runtime/be/resource/be_disaggregated_entrypoint.sh
+++ b/docker/runtime/be/resource/be_disaggregated_entrypoint.sh
@@ -198,10 +198,18 @@ function show_frontends()
#parse the `$BE_CONFIG` file, passing the key need resolve as parameter.
parse_confval_from_conf()
{
- # a naive script to grep given confkey from fe conf file
- # assume conf format: ^\s*<key>\s*=\s*<value>\s*$
local confkey=$1
- local confvalue=`grep "^\s*$confkey" $BE_CONFIG | grep -v '^\s*#' | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$BE_CONFIG" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'be.conf' config [ $confkey: $confvalue]"
echo "$confvalue"
}
diff --git a/docker/runtime/be/resource/be_disaggregated_prestop.sh b/docker/runtime/be/resource/be_disaggregated_prestop.sh
index 8d753d6d875..45732f66507 100755
--- a/docker/runtime/be/resource/be_disaggregated_prestop.sh
+++ b/docker/runtime/be/resource/be_disaggregated_prestop.sh
@@ -22,11 +22,26 @@ DORIS_ROOT=${DORIS_HOME:="/opt/apache-doris"}
DORIS_HOME=${DORIS_ROOT}/be
BE_CONFFILE=${DORIS_HOME}/conf/be.conf
+log_stderr()
+{
+ echo "[`date`] $@" >&2
+}
+
parse_confval_from_be_conf()
{
local confkey=$1
- local confvalue=`grep "^\s*$confkey" $BE_CONFFILE | grep -v "^\s\#" | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
- echo $confvalue
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$BE_CONFFILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'be.conf' config [ $confkey: $confvalue]"
+ echo "$confvalue"
}
log_dir=`parse_confval_from_be_conf "LOG_DIR"`
@@ -37,8 +52,8 @@ fi
log_replace_var_dir=`eval echo "$log_dir"`
kill_time=$(date "+%Y-%m-%d %H:%M:%S")
-eval echo "[be_disaggregated_prestop.sh] ${kill_time} kubelet kill call the be_prestop.sh to stop be service." >> "$log_replace_var_dir/be.out"
+eval echo "[be_disaggregated_prestop.sh] ${kill_time} kubelet kill call the be_disaggregated_prestop.sh to stop be service." >> "$log_replace_var_dir/be.out"
#eval echo "[be_disaggregated_prestop.sh] ${kill_time} kubelet kill call the be_prestop.sh to stop be service." 2>&1
-eval echo "[be_disaggregated_prestop.sh] ${kill_time} kubelet kill call the be_prestop.sh to stop be service ." >> "/proc/1/fd/1"
+eval echo "[be_disaggregated_prestop.sh] ${kill_time} kubelet kill call the be_disaggregated_prestop.sh to stop be service ." >> "/proc/1/fd/1"
$DORIS_HOME/bin/stop_be.sh --grace
diff --git a/docker/runtime/be/resource/be_disaggregated_probe.sh b/docker/runtime/be/resource/be_disaggregated_probe.sh
index 9003d70b885..19f9eb6c128 100755
--- a/docker/runtime/be/resource/be_disaggregated_probe.sh
+++ b/docker/runtime/be/resource/be_disaggregated_probe.sh
@@ -36,11 +36,27 @@ TLS_CERTIFICATE_PATH=
#tls_ca_certificate_path specify the path of root ca.
TLS_CA_CERTIFICATE_PATH=
+log_stderr()
+{
+ echo "[`date`] $@" >&2
+}
+
function parse_config_file_with_key()
{
- local key=$1
- local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"`
- echo $value
+ local confkey=$1
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$CONFIG_FILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'be.conf' config [ $confkey: $confvalue]"
+ echo "$confvalue"
+
}
diff --git a/docker/runtime/be/resource/be_entrypoint.sh b/docker/runtime/be/resource/be_entrypoint.sh
index ac7c561a807..f34e23c1a59 100755
--- a/docker/runtime/be/resource/be_entrypoint.sh
+++ b/docker/runtime/be/resource/be_entrypoint.sh
@@ -179,10 +179,18 @@ function show_frontends()
#parse the `$BE_CONFIG` file, passing the key need resolve as parameter.
parse_confval_from_conf()
{
- # a naive script to grep given confkey from fe conf file
- # assume conf format: ^\s*<key>\s*=\s*<value>\s*$
local confkey=$1
- local confvalue=`grep "^\s*$confkey" $BE_CONFIG | grep -v '^\s*#' | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$BE_CONFIG" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'be.conf' config [ $confkey: $confvalue]"
echo "$confvalue"
}
diff --git a/docker/runtime/be/resource/be_prestop.sh b/docker/runtime/be/resource/be_prestop.sh
index 3251b7e3632..29422f5997a 100755
--- a/docker/runtime/be/resource/be_prestop.sh
+++ b/docker/runtime/be/resource/be_prestop.sh
@@ -20,11 +20,26 @@ DORIS_ROOT=${DORIS_ROOT:-"/opt/apache-doris"}
DORIS_HOME=${DORIS_ROOT}/be
BE_CONFFILE=${DORIS_HOME}/conf/be.conf
+log_stderr()
+{
+ echo "[`date`] $@" >&2
+}
+
parse_confval_from_be_conf()
{
local confkey=$1
- local confvalue=`grep "^\s*$confkey" $BE_CONFFILE | grep -v "^\s\#" | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
- echo $confvalue
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$BE_CONFFILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'be.conf' config [ $confkey: $confvalue]"
+ echo "$confvalue"
}
log_dir=`parse_confval_from_be_conf "LOG_DIR"`
diff --git a/docker/runtime/fe/resource/fe_disaggregated_entrypoint.sh b/docker/runtime/fe/resource/fe_disaggregated_entrypoint.sh
index 70aa54a6acf..dff93d10625 100755
--- a/docker/runtime/fe/resource/fe_disaggregated_entrypoint.sh
+++ b/docker/runtime/fe/resource/fe_disaggregated_entrypoint.sh
@@ -53,10 +53,13 @@ DB_ADMIN_PASSWD=$PASSWD
# myself as IP or FQDN
MYSELF=
+# doris mtat storage path
+DORIS_META_DIR=
+
#specify enable tls or not.
ENABLE_TLS=
-#tls_certificate_path specify the path of public crt.
+#tls_certificate_path specify the path of public crt.
TLS_CERTIFICATE_PATH=
#tls_private_key_path specify the public secert key.
@@ -74,9 +77,18 @@ function log_stderr()
parse_confval_from_fe_conf()
{
# a naive script to grep given confkey from fe conf file
- # assume conf format: ^\s*<key>\s*=\s*<value>\s*$
local confkey=$1
- local confvalue=`grep "\<$confkey\>" $FE_CONFFILE | grep -v '^\s*#' | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$FE_CONFFILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'fe.conf' config [ $confkey: $confvalue]"
echo "$confvalue"
}
@@ -112,6 +124,13 @@ collect_env_info()
if [[ "x$query_port" != "x" ]] ; then
QUERY_PORT=$query_port
fi
+
+ # parse meta_dir
+ local doris_meta_path=`parse_confval_from_fe_conf "meta_dir"`
+ if [[ "x$doris_meta_path" == "x" ]] ; then
+ doris_meta_path="/opt/apache-doris/fe/doris-meta"
+ fi
+ DORIS_META_DIR=$doris_meta_path
}
show_frontends()
@@ -495,13 +514,14 @@ resolve_password_from_secret
#parse tls connection config
parse_tls_connection_variables
-if [[ -f "$DORIS_HOME/doris-meta/image/ROLE" ]]; then
+collect_env_info
+doris_meta_dir=$(eval "echo \"$DORIS_META_DIR\"")
+if [[ -f "$doris_meta_dir/image/ROLE" ]]; then
log_stderr "start fe with exist meta."
./doris-debug --component fe
start_fe_with_meta
else
log_stderr "first start fe with meta not exist."
- collect_env_info
probe_master $fe_addrs
#create account about node management
create_account
diff --git a/docker/runtime/fe/resource/fe_disaggregated_prestop.sh b/docker/runtime/fe/resource/fe_disaggregated_prestop.sh
index bab9092d56b..fc04ec07c50 100755
--- a/docker/runtime/fe/resource/fe_disaggregated_prestop.sh
+++ b/docker/runtime/fe/resource/fe_disaggregated_prestop.sh
@@ -22,11 +22,27 @@ DORIS_ROOT=${DORIS_ROOT:-"/opt/apache-doris"}
DORIS_HOME=${DORIS_ROOT}/fe
FE_CONFFILE=$DORIS_HOME/conf/fe.conf
+log_stderr()
+{
+ echo "[`date`] $@" >&2
+}
+
parse_confval_from_fe_conf()
{
+ # a naive script to grep given confkey from fe conf file
local confkey=$1
- local confvalue=`grep "^\s*$confkey" $FE_CONFFILE | grep -v "^\s\#" | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
- echo $confvalue
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$FE_CONFFILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'fe.conf' config [ $confkey: $confvalue]"
+ echo "$confvalue"
}
log_dir=`parse_confval_from_fe_conf "LOG_DIR"`
diff --git a/docker/runtime/fe/resource/fe_disaggregated_probe.sh b/docker/runtime/fe/resource/fe_disaggregated_probe.sh
index 9e794381f5f..65496370a46 100755
--- a/docker/runtime/fe/resource/fe_disaggregated_probe.sh
+++ b/docker/runtime/fe/resource/fe_disaggregated_probe.sh
@@ -24,11 +24,26 @@ DEFAULT_HTTP_PORT=8030
DEFAULT_QUERY_PORT=9030
PROBE_TYPE=$1
+log_stderr()
+{
+ echo "[`date`] $@" >&2
+}
+
function parse_config_file_with_key()
{
- local key=$1
- local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"`
- echo $value
+ local confkey=$1
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$CONFIG_FILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'fe.conf' config [ $confkey: $confvalue]"
+ echo "$confvalue"
}
parse_tls_connection_variables()
diff --git a/docker/runtime/fe/resource/fe_entrypoint.sh b/docker/runtime/fe/resource/fe_entrypoint.sh
index 2210c2d0340..22824bb887b 100755
--- a/docker/runtime/fe/resource/fe_entrypoint.sh
+++ b/docker/runtime/fe/resource/fe_entrypoint.sh
@@ -61,9 +61,18 @@ function log_stderr()
parse_confval_from_fe_conf()
{
# a naive script to grep given confkey from fe conf file
- # assume conf format: ^\s*<key>\s*=\s*<value>\s*$
local confkey=$1
- local confvalue=`grep "\<$confkey\>" $FE_CONFFILE | grep -v '^\s*#' | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$FE_CONFFILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'fe.conf' config [ $confkey: $confvalue]"
echo "$confvalue"
}
diff --git a/docker/runtime/fe/resource/fe_prestop.sh b/docker/runtime/fe/resource/fe_prestop.sh
index eb7c3966276..b1e73c0bed1 100755
--- a/docker/runtime/fe/resource/fe_prestop.sh
+++ b/docker/runtime/fe/resource/fe_prestop.sh
@@ -20,11 +20,27 @@ DORIS_ROOT=${DORIS_ROOT:-"/opt/apache-doris"}
DORIS_HOME=${DORIS_ROOT}/fe
FE_CONFFILE=$DORIS_HOME/conf/fe.conf
+log_stderr()
+{
+ echo "[`date`] $@" >&2
+}
+
parse_confval_from_fe_conf()
{
+ # a naive script to grep given confkey from fe conf file
local confkey=$1
- local confvalue=`grep "^\s*$confkey" $FE_CONFFILE | grep -v "^\s\#" | sed 's|^\s*'$confkey'\s*=\s*\(.*\)\s*$|\1|g'`
- echo $confvalue
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$FE_CONFFILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'fe.conf' config [ $confkey: $confvalue]"
+ echo "$confvalue"
}
log_dir=`parse_confval_from_fe_conf "LOG_DIR"`
diff --git a/docker/runtime/ms/resource/ms_disaggregated_prestop.sh b/docker/runtime/ms/resource/ms_disaggregated_prestop.sh
index d4796f1453d..2dcb06967d1 100755
--- a/docker/runtime/ms/resource/ms_disaggregated_prestop.sh
+++ b/docker/runtime/ms/resource/ms_disaggregated_prestop.sh
@@ -20,7 +20,7 @@
#get from env
DORIS_ROOT=${DORIS_ROOT:-"/opt/apache-doris"}
DORIS_HOME=${DORIS_ROOT}/ms
-MS_CONFFILE=${DORIS_HOME}/conf/doris_cloud.conf.conf
+MS_CONFFILE=${DORIS_HOME}/conf/doris_cloud.conf
log_file="/opt/apache-doris/ms/log/meta_service.INFO"
kill_time=$(date "+%Y-%m-%d %H:%M:%S")
diff --git a/docker/runtime/ms/resource/ms_disaggregated_probe.sh b/docker/runtime/ms/resource/ms_disaggregated_probe.sh
index 87bb316375f..259fcb55a8f 100755
--- a/docker/runtime/ms/resource/ms_disaggregated_probe.sh
+++ b/docker/runtime/ms/resource/ms_disaggregated_probe.sh
@@ -28,9 +28,19 @@ log_stderr()
function parse_config_file_with_key()
{
- local key=$1
- local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"`
- echo $value
+ local confkey=$1
+
+ esc_key=$(printf '%s\n' "$confkey" | sed 's/[[\.*^$()+?{|]/\\&/g')
+ local confvalue=$(
+ grep -v '^[[:space:]]*#' "$CONFIG_FILE" |
+ grep -E "^[[:space:]]*${esc_key}[[:space:]]*=" |
+ tail -n1 |
+ sed -E 's/^[[:space:]]*[^=]+[[:space:]]*=[[:space:]]*//' |
+ sed -E 's/[[:space:]]*#.*$//' |
+ sed -E 's/^[[:space:]]+|[[:space:]]+$//g'
+ )
+ log_stderr "[info] read 'doris_cloud.conf' config [ $confkey: $confvalue]"
+ echo "$confvalue"
}
function alive_probe()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org