分类: PaaS系统/容器
-
文章介绍了基于 Supervisor 和 bash sleep 实现 Docker 部署中类 crontab 任务以降低内存占用的过程。通过编辑配置文件调整脚本执行间隔,并在测试环境检测运行状态与异常处理情况。实验发现将 sleep 时间控制在合理范围并调整 startsecs 参数可有效降低内存,最终在两个产品环境中验证了该方法能显著减少 Docker 容器的内存占用并符合预期。
-
本文针对基于 Yii 2.0 的 Supervisor 命令行脚本在持续运行期间占用内存过高的问题进行了分析与解决。通过监控 Docker 容器资源,定位了 Redis AR 模型查询和高频执行导致的内存增长。优化措施包括使用 unset() 释放变量、利用 asArray() 获取数组形式结果、修复 HTTP 客户端 400 错误以及引入同步标识控制执行频率。最终测试表明,调整查询方式和执行策略有效降低了内存占用,证明了优化方案的可行性。
-
在 Docker 部署过程中将目录名从 sobey 修改为 mcloud 时,Jenkins 构建镜像报错 composer install 返回非零代码。排查 Dockerfile 后发现是执行批量替换操作导致,将目录中的 mcloud 还原为 sobey,仅替换指定的几处后,构建镜像最终成功,问题得以解决。
-
本文针对 Docker 部署中部分 Rancher 环境变量缺少默认值的问题进行了处理。主要操作是修改环境变量配置文件,将特定变量 CHANNEL_PUB_API_CFG_DB_TABLE_PREFIX 的默认值从键名更改为 cpa_。调整后的结果显示,部分环境变量已设置默认值,在 Rancher 中部署时无需强制设置,从而简化了必要的配置项。
-
本文针对 Rancher 容器升级后需手动执行初始化与数据库迁移命令的问题,通过编写 SHELL 脚本实现了基于环境变量的自动化运行。脚本根据 PCS_API_CFG_ENV 和 PCS_API_CFG_MIGRATE 等环境变量的值,自动执行应用初始化或数据库迁移操作,同时设置了默认值与错误提示。针对执行顺序导致的命令报错,通过重命名脚本文件确保在配置文件加载后运行。最终测试表明,该方案成功实现了容器升级后的自动化初始化与迁移。
-
在 Windows 10 中执行 Yii 2 高级模板初始化命令设置目录权限正常,而在 CentOS 7.2 中执行时部分应用目录权限未被设置。排查发现 Docker 部署将文件拷贝至系统根目录时,environments 目录下的 index.php 文件缺少相应目录配置。将该文件复制至指定路径并重新升级后,再次执行初始化命令,各应用目录权限均正确设置为 777,问题得到解决。
-
针对 Docker 和 Rancher 部署环境,文章探讨了利用 Supervisor 定时执行 Yii 2 控制台命令的实施方案。通过创建配置文件设置间隔与停止等待时间,并升级以解决环境变量替换问题,最终实现了命令的预期执行。同时,针对日志输出未自动换行导致可读性差的情况,通过修改控制器代码添加换行符,完成了日志格式的优化。
-
本文解决了在 Yii 2 中基于 Hprose 实现 RPC 服务时报错 passthru() has been disabled for security reasons 的问题。本地环境接口请求成功,但开发环境请求失败,排查后发现是 PHP 配置限制了该函数。通过编辑客户端与服务端的 Dockerfile,从 disable_functions 配置项中删除 passthru,重新部署后再次请求接口,响应成功恢复正常。
-
Jenkins构建镜像时遇到Process类依赖proc_open函数报错,原因是无法下载dist包转而从源代码下载导致。解决方法为编辑Dockerfile,在disable_functions配置中删除proc_open和proc_close。此前因能下载dist包不涉及源码编译故未报错,移除禁用函数限制后重新构建镜像,最终从源代码下载成功并完成构建。
