分类: Rancher
-
本文记录了将 /vendor 目录加入 Git 仓库以配合 Docker 部署的排查过程。起初因删除 composer install 导致 Rancher 启动失败,经分析发现 vendor 目录下存在 .git 子目录阻碍了文件提交。通过删除 .git 目录并重新提交,同时使用 composer install –no-dev 优化依赖,最终解决了迁移命令报错问题,并将 Jenkins 构建时间大幅缩短。
-
本文记录了在 Rancher 中通过克隆容器部署集群,并配置负载均衡验证流量分发的过程。针对命令行下 Redis 锁定频率过高的问题,通过调整执行间隔、优化事务同步时间及更新逻辑,成功降低了锁定频率并提升了执行性能。测试结果验证了在不同任务数量下的同步频率平均值符合预期的理论计算公式。
-
文章介绍了在 Yii 2.0 中利用 Docker、Supervisor 及 Redis 锁定机制实现控制台命令集群部署的方法。通过改造 Redis 锁定逻辑,在同步任务前获取锁,结束后释放锁,确保同一租户的同步任务在多台服务器间不重复执行,解决了冗余问题。测试验证了该方案能显著提升任务处理性能与同步即时性,同时给出了同步间隔的计算公式及容器数量建议。
-
在基于 Rancher 升级容器时,Yii2 高级模板初始化报错提示 frontend/web/assets 目录不存在。经排查,该目录在源代码中存在,但因容器内的 web 目录已被映射至挂载存储,实际路径指向了存储而非源代码目录导致报错。删除存储上的挂载配置后,再次进行升级和初始化操作,问题成功解决。
-
文章介绍了基于 Supervisor 和 bash sleep 实现 Docker 部署中类 crontab 任务以降低内存占用的过程。通过编辑配置文件调整脚本执行间隔,并在测试环境检测运行状态与异常处理情况。实验发现将 sleep 时间控制在合理范围并调整 startsecs 参数可有效降低内存,最终在两个产品环境中验证了该方法能显著减少 Docker 容器的内存占用并符合预期。
-
文章介绍了基于 supervisord 运行 PHP 命令行脚本的方法,通过编辑配置文件和初始化脚本,实现了利用 Rancher 环境变量控制脚本是否运行。测试表明,当环境变量设置为 true 时脚本正常运行,设置为 false 或未设置时不运行,从而支持集群部署时仅在单机中运行。文章最后建议参考特定网址修复临时文件夹的 Bug。
-
在 Rancher 中升级容器时遇到报错 /config/init/config0.sh: line 1314: syntax error near unexpected token `}’,经 PhpStorm 编辑器检查发现脚本第 1314 行存在语法错误,提示 Expected a command。通过注释掉该行相应代码后重新在 Rancher 中执行升级操作,最终容器升级成功,问题得到解决。
-
本文针对 Docker 部署中部分 Rancher 环境变量缺少默认值的问题进行了处理。主要操作是修改环境变量配置文件,将特定变量 CHANNEL_PUB_API_CFG_DB_TABLE_PREFIX 的默认值从键名更改为 cpa_。调整后的结果显示,部分环境变量已设置默认值,在 Rancher 中部署时无需强制设置,从而简化了必要的配置项。
-
在 Rancher 容器升级过程中执行 SHELL 脚本报错,经排查发现环境变量 CMCP_API_CFG_REDIS_PASSWORD 中的特殊字符与 sed 命令的分隔符存在冲突。通过去除特定字符或修改脚本中的分隔符为井号,成功解决了兼容性问题并完成升级。文章详细分析了 sed 替换命令的默认语法及使用自定义分隔符避免冲突的解决方法。
-
本文针对 Rancher 容器升级后需手动执行初始化与数据库迁移命令的问题,通过编写 SHELL 脚本实现了基于环境变量的自动化运行。脚本根据 PCS_API_CFG_ENV 和 PCS_API_CFG_MIGRATE 等环境变量的值,自动执行应用初始化或数据库迁移操作,同时设置了默认值与错误提示。针对执行顺序导致的命令报错,通过重命名脚本文件确保在配置文件加载后运行。最终测试表明,该方案成功实现了容器升级后的自动化初始化与迁移。
