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

在 Rancher 中升级容器时,报错:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH: unbound variable 的分析解决

在 Rancher 中升级容器时,报错:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH: unbound variable。

1、在 Rancher 中升级容器时,报错:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH: unbound variable。如图1

在 Rancher 中升级容器时,报错:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH: unbound variable。
图1
Plaintext

2020/10/10 上午10:53:15 CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL replace CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL -> /mcloud/www/channel-pub-api/environments/dev/common/config/params-local.php
2020/10/10 上午10:53:15 /config/init/config0.sh: line 1193: CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH: unbound variable

2、查看文件:/config/init/config0.sh。

ShellScript

env | grep "CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL" || export CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL="CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL"
env | grep "CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH" || export CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH="CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH"

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

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

3、即使在 Rancher 中添加环境变量:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL、CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH 。仍然报同样的错误。如图2

即使在 Rancher 中添加环境变量:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL、CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH 。仍然报同样的错误。
图2
Plaintext

CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL=CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL
CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH=CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH

4、在 Rancher 中赋值环境变量:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH 一个具体的值。升级成功。

Plaintext

CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL=CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL
CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH=/webtv/wangjiedev/channel-pub-api/uploads

5、怀疑与环境变量名称的特殊性有关。编辑待替换环境变量的配置文件,删除相应的环境变量。编辑文件:/config/init/config0.sh,删除相应的环境变量:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL、CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH。
调整前:

PHP

    // 渠道发布接口
    'channelPubApi' => [
        'hostInfo' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_HOST_INFO', // HOME URL
        'baseUrl' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_BASE_URL', // BASE URL
        'asset' => [ // 资源
            'hostInfo' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_HOST_INFO', // HOME URL
            'baseUrl' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_URL', // BASE URL
            'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_PATH', // BASE PATH
            'image' => [ // 图片
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_IMAGE_BASE_PATH', // BASE PATH
            ],
            'video' => [ // 视频
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_VIDEO_BASE_PATH', // BASE PATH
            ],
            'audio' => [ // 音频
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_AUDIO_BASE_PATH', // BASE PATH
            ],
            'other' => [ // 其它
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_OTHER_BASE_PATH', // BASE PATH
            ],
        ],
    ],
	//文件上传目录配置
	'appAvatarUpload' => [
		'pathUrl' => 'CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL',//上传目录的访问地址,结尾不加/
		'uploadPath' => 'CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH',//上传目录,结尾不加/
	],

PHP

			$pathUrl = Yii::$app->params['appAvatarUpload']['pathUrl'];
			$uploadPath = Yii::$app->params['appAvatarUpload']['uploadPath'];

调整后:

PHP

    // 渠道发布接口
    'channelPubApi' => [
        'hostInfo' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_HOST_INFO', // HOME URL
        'baseUrl' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_BASE_URL', // BASE URL
        'asset' => [ // 资源
            'hostInfo' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_HOST_INFO', // HOME URL
            'baseUrl' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_URL', // BASE URL
            'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_PATH', // BASE PATH
            'image' => [ // 图片
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_PATH/images', // BASE PATH
            ],
            'video' => [ // 视频
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_PATH/videos', // BASE PATH
            ],
            'audio' => [ // 音频
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_PATH/audios', // BASE PATH
            ],
            'other' => [ // 其它
                'basePath' => 'CHANNEL_PUB_API_CFG_CHANNEL_PUB_API_ASSET_BASE_PATH/others', // BASE PATH
            ],
        ],
    ],

PHP

			$pathUrl = Yii::$app->params['channelPubApi']['asset']['image']['hostInfo'] . ['channelPubApi']['asset']['image']['baseUrl'];
			$uploadPath = Yii::$app->params['channelPubApi']['asset']['image']['basePath'];

6、在 Rancher 中删除环境变量:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL、CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH。升级成功。进入容器,查看替换后的配置文件。如图3

在 Rancher 中删除环境变量:CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH_URL、CHANNEL_PUB_API_CFG_APP_AVATAR_UPLOAD_PATH。升级成功。进入容器,查看替换后的配置文件。
图3

Linux 服务器运维、部署与线上故障排查

如果你的网站或后端服务部署在 Linux 服务器上,遇到访问异常、Nginx 配置问题、MySQL / Redis 异常、Docker 服务不可用、磁盘占满、CPU / 内存过高等问题,可以联系我做一次远程排查。

适合以下场景:
✅ 网站打不开或访问不稳定
✅ Nginx / PHP-FPM 配置异常
✅ MySQL / Redis 性能或连接问题
✅ Docker 服务部署与维护
✅ 服务器迁移与环境配置
✅ CPU / 内存 / 磁盘异常排查

服务内容:
✅ Linux 环境检查
✅ 网站部署与迁移
✅ Nginx / PHP-FPM / MySQL / Redis 排查
✅ Docker 配置与维护
✅ 服务器性能分析
✅ 长期远程运维支持

如需咨询,请联系我,并注明:Linux 运维咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com