rancher配置mysql_在 Rancher 容器升级后,基于环境变量的配置,自动运行应用初始化命令与数据库迁移命令...

本文介绍了如何在Rancher容器升级后,通过环境变量自动化执行应用初始化命令和数据库迁移。通过创建SHELL脚本`pcs-api_init.sh`,根据环境变量自动执行相应命令,解决了运维人员手动执行命令的问题,减少了错误并提高了效率。同时,文中还讨论了升级过程中的异常情况处理和不同环境变量设置的影响。
摘要由CSDN通过智能技术生成

1、现阶段的升级方案,在 Rancher 容器升级后,进入 Docker 容器,在命令行中依次运行:

// 开发环境 / 测试环境

php /sobey/www/pcs-api/init --env=Development --overwrite=All

// 演示环境 / 生产环境

php /sobey/www/pcs-api/init --env=Production --overwrite=All

// 数据库迁移(日志的数据库模式,仅在第一次安装时运行)

php /sobey/www/pcs-api/yii migrate --migrationPath=@yii/log/migrations/ --interactive=0

// 数据库迁移(MySQL 5.7.7 之前的版本:innodb_large_prefix=1、innodb_file_format=BARRACUDA)

php /sobey/www/pcs-api/yii migrate --interactive=0

2、现阶段的升级方案所存在的问题在于,有时候 Rancher 容器升级后,运维人员需要在每个容器中皆粘贴运行至少 2 条命令,即第 2、4 条,很容易漏掉某个容器,进而导致程序运行错误,而且存在一定的工作量。准备基于 SHELL 脚本,自动运行命令行,以确保每个容器皆初始化成功,且节省运维人员的工作量。

3、新建 \build\c_files\config\init\pcs-api_init.sh

注:

如果未设置环境变量:PCS_API_CFG_ENV,则设置其默认值为:dev

如果已设置环境变量:PCS_API_CFG_ENV,其值为:dev,则执行命令:php /sobey/www/pcs-api/init –env=Development –overwrite=All;其值为:prod,则执行命令:php /sobey/www/pcs-api/init –env=Production –overwrite=All;否则输出:please set environment variable PCS_API_CFG_ENV dev or prod

如果未设置环境变量:PCS_API_CFG_MIGRATE,则设置其默认值为:false

如果已设置环境变量:PCS_API_CFG_MIGRATE,其值为:true,则依次执行命令:php /sobey/www/pcs-api/yii migrate –migrationPath=@yii/log/migrations/ –interactive=0、php /sobey/www/pcs-api/yii migrate –interactive=0;其值为:false,则输出:running without db migrate;否则输出:please set environment variable PCS_API_CFG_MIGRATE true or false

#!/bin/bash

env | grep PCS_API_CFG_ENV || export PCS_API_CFG_ENV="dev"

if [[ $PCS_API_CFG_ENV == "dev" ]]

then

php /sobey/www/pcs-api/init --env=Development --overwrite=All

elif [[ $PCS_API_CFG_ENV == "prod" ]]

then

php /sobey/www/pcs-api/init --env=Production --overwrite=All

else

echo "please set environment variable PCS_API_CFG_ENV dev or prod"

fi

env | grep PCS_API_CFG_MIGRATE || export PCS_API_CFG_MIGRATE="false"

if [[ $PCS_API_CFG_MIGRATE == "true" ]]

then

php /sobey/www/pcs-api/yii migrate --migrationPath=@yii/log/migrations/ --interactive=0

php /sobey/www/pcs-api/yii migrate --interactive=0

elif [[ $PCS_API_CFG_MIGRATE == "false" ]]

then

echo "running without db migrate"

else

echo "please set environment variable PCS_API_CFG_MIGRATE true or false"

fi

4、删除开发环境中的数据库中的所有表,未设置环境变量:PCS_API_CFG_ENV、PCS_API_CFG_MIGRATE,以测试未设置环境变量时,默认值的设置是否生效&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值