没有不值得去解决的问题,也没有不值得去学习的技术!

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

Shell 脚本如下所示。
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
Shell 脚本如下所示。
图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
当在 Rancher 中未添加环境变量:RMT_MAIN_DOMAIN 时,升级容器时,报错
图2


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

需要设置 RMT_MAIN_DOMAIN


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


需要设置 RMT_MAIN_DOMAIN


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


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


需要长期技术维护或远程问题排查?

我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。

如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:

  • ✅ PHP / Laravel / Yii2 老项目无人维护
  • ✅ Go / Gin 后端接口需要排查或优化
  • ✅ WordPress 网站访问慢、报错或插件冲突
  • ✅ Nginx / MySQL / Redis / Linux 服务器异常
  • ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
  • ✅ 需要长期远程技术支持或兼职维护

更多介绍请查看:关于我 & 合作

微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理