在 Rancher 环境变量中,在一个环境变量的值中引用另一个环境变量的实现

1、现阶段,有 4 个 Rancher 环境变量(未设置默认值,必须设置),其值包含公共部分:dev.xxx.cn

PCS_API_CFG_SCMS_EDITOR_HOST_INFO=https://editor.dev.xxx.cn # 内容管理系统编辑器的 HOME URL
PCS_API_CFG_PCS_API_ASSET_HOST_INFO=https://web.dev.xxx.cn # 策划指挥系统接口的资源的 HOME URL
PCS_API_CFG_CPU_HOST_INFO=https://fcpu.dev.xxx.cn # CP上传的 HOME URL
PCS_API_CFG_SCMS_FRONT_HOST_INFO=https://web.dev.xxx.cn # 内容管理系统的 HTTP 客户端的前端的 HOME URL

2、新阶段,更新 4 个 Rancher 环境变量(已设置默认值,可无需设置)。添加新的值为公共部分的环境变量:RMT_MAIN_DOMAIN

RMT_MAIN_DOMAIN=dev.xxx.cn # 融媒体环境的主域名
PCS_API_CFG_SCMS_EDITOR_HOST_INFO=https://editor.${RMT_MAIN_DOMAIN} # 内容管理系统编辑器的 HOME URL
PCS_API_CFG_PCS_API_ASSET_HOST_INFO=https://web.${RMT_MAIN_DOMAIN} # 策划指挥系统接口的资源的 HOME URL
PCS_API_CFG_CPU_HOST_INFO=https://fcpu.${RMT_MAIN_DOMAIN} # CP上传的 HOME URL
PCS_API_CFG_SCMS_FRONT_HOST_INFO=https://web.${RMT_MAIN_DOMAIN} # 内容管理系统的 HTTP 客户端的前端的 HOME URL

3、Shell 脚本如下所示。如图1

图1

# Rancher 环境变量(未设置默认值,必须设置)
if [[ `echo $RMT_MAIN_DOMAIN` == '' ]]
then
    echo "需要设置 RMT_MAIN_DOMAIN"
    exit 1
else
    echo "设置的 RMT_MAIN_DOMAIN 为:$RMT_MAIN_DOMAIN"
fi

# Rancher 环境变量(已设置默认值,可无需设置)
env | grep "PCS_API_CFG_SCMS_EDITOR_HOST_INFO" || export PCS_API_CFG_SCMS_EDITOR_HOST_INFO="https://editor.${RMT_MAIN_DOMAIN}"

sed -i "s#PCS_API_CFG_SCMS_EDITOR_HOST_INFO#$PCS_API_CFG_SCMS_EDITOR_HOST_INFO#g" $DEV_COMMON_CONFIG_PARAMS_LOCAL_PATH
echo "PCS_API_CFG_SCMS_EDITOR_HOST_INFO replace $PCS_API_CFG_SCMS_EDITOR_HOST_INFO -> $DEV_COMMON_CONFIG_PARAMS_LOCAL_PATH"
echo "PCS_API_CFG_SCMS_EDITOR_HOST_INFO replace $PCS_API_CFG_SCMS_EDITOR_HOST_INFO -> $DEV_COMMON_CONFIG_PARAMS_LOCAL_PATH" >> $DIR/change.log

4、当在 Rancher 中未添加环境变量:RMT_MAIN_DOMAIN 时,升级容器时,报错,如图2

图2

/config/init/config0.sh: line 18: RMT_MAIN_DOMAIN: unbound variable

需要设置 RMT_MAIN_DOMAIN

5、当在 Rancher 中添加环境变量:RMT_MAIN_DOMAIN= ,其值为空字符串时,升级容器时,报错,如图3

图3

需要设置 RMT_MAIN_DOMAIN

6、当在 Rancher 中添加环境变量:RMT_MAIN_DOMAIN=dev.xxx.cn ,其值为 dev.xxx.cn 时,升级容器时,升级成功,环境变量已经生效。如图4

图4

// 内容管理系统编辑器
'scmsEditor' => [
    'hostInfo' => 'https://editor.dev.xxx.cn', // HOME URL
    'baseUrl' => '', // BASE URL
],
永夜