Commit Graph

15 Commits

Author SHA1 Message Date
augushong
e0e2580646 feat(stack): 所有 Docker 模式集成 XHProf 性能分析
在 docker-dev/docker-dev-sync/docker-serve/full 四个模式中集成 XHProf
性能分析能力,默认不启用(--profile xhprof 按需开启),零侵入不改
业务代码和 run.sh。

核心组件:
- source/docker/xhprof-bootstrap.php: 采集器初始化(auto_prepend_file)
- source/docker/xhgui-config.php: XHGui 认证配置(Basic Auth)+ PDO 存储
- 各 Dockerfile: 安装 PECL xhprof 扩展 + php-profiler 到 /opt/xhprof/
- 各 docker-compose: 新增 xhgui 服务(profiles: xhprof),端口 8142

存储方案:PDO MySQL(复用现有 MySQL),避免 MongoDB PHP 驱动兼容性问题。
docker-dev/docker-dev-sync 开箱即用;docker-serve/full 需配置 XHGUI_PDO_DSN。

认证:HTTP Basic Auth,默认 admin/xhgui123,环境变量可覆盖。
采集控制:XHPROF_ENABLE 环境变量 + cookie _profiler 强制触发 + 1% 采样。
Dockerfile.base 同步新增 xhprof 扩展(框架作者需重建推送基础镜像)。
2026-08-09 09:07:10 +08:00
augushong
ce191adfd8 feat(nginx-log): 4 个 stack 模板增加 log_format 与 access_log 配置(Docker 开箱即用) 2026-07-28 00:24:26 +08:00
augushong
544604ebff fix(stack): 其余4个模式同步 bind mount 兼容修复
与 docker-dev(commit 5797885)保持一致的修复方案:
- run.sh 改为 SCRIPT_DIR 自动检测脚本所在目录
- Dockerfile ENTRYPOINT/chmod 改为完整路径
  /var/www/html/source/stack/<mode>/source/docker/run.sh
- 基础配置(nginx.conf/zz-phprun.ini/zz-phpfpm.conf)复制到各模式目录
- ln -s 改为 ln -sf(防止容器重启时 File exists)

docker-dev-sync 额外保留 sync.sh 调用逻辑(init + watch),
仅路径改为 \/sync.sh
2026-07-22 23:40:33 +08:00
augushong
6bc661117c fix(stack): 修复 B-route 下所有 Dockerfile COPY 路径与 build context 不匹配
B-route 把 build context 改为仓库根后,Dockerfile 中的 COPY source/docker/...
和 chmod/ENTRYPOINT 引用 /var/www/html/source/docker/ 全部失效。

根因:
- 仓库根有全局 source/docker/(仅 nginx.conf/zz-phprun.ini/zz-phpfpm.conf 基础配置)
- 模式专属配置(run.sh、zzz-dev.ini、zzz-xdebug.ini 等)在 source/stack/<mode>/source/docker/
- COPY . 把全局 source/docker/ 复制进容器,但缺少模式专属文件
- 旧 COPY source/docker/zzz-dev.ini 在 context=仓库根时找不到文件

修复(所有 5 个模式统一):
- 每个 Dockerfile 在 COPY . 后加 rm -rf + ln -sf symlink,
  让 /var/www/html/source/docker 指向模式专属配置目录
- COPY ini 文件路径改为完整的 source/stack/<mode>/source/docker/...
- .dockerignore 去掉 source/stack/ 排除(配置文件仅几 KB,
  但 COPY 需要这些文件在 build context 中)
- .dockerignore 加 docker-dev/docker-dev-data 排除(旧数据残留)
2026-07-22 23:18:16 +08:00
augushong
bed965a9b1 fix(stack): 修正构建上下文路径层级 ../../.. 并将 base-build 重命名为 author 2026-07-22 01:16:24 +08:00
augushong
62e72af93d feat(stack): B 路线构建上下文与卷配置方案(docker-serve/docker-dev/full) 2026-07-22 01:10:15 +08:00
augushong
c4fbd60bbc fix(timer): 修正定时器参数拼写 quit -> quiet(静默模式) 2026-06-02 20:09:37 +08:00
augushong
f49ca8d9cf fix(stack): 为 full 和 base-build 模式补充 source/docker/run.sh 2026-05-27 21:42:35 +08:00
augushong
218810a7db refactor: 迁移根目录 docker/ 到 source/docker/,更新所有路径引用
- 将 docker/{nginx.conf,run.sh,zz-phprun.ini,zz-phpfpm.conf} 移动到 source/docker/
- 更新所有 Dockerfile 中 /var/www/html/docker/ -> /var/www/html/source/docker/
- 更新 stack.json managed_files 路径前缀
- 重组 stack 模式目录结构 docker/ -> source/docker/
- 更新 source/README.md 目录描述
- 更新 AdminUpdateServiceBase.php 可选文件前缀
2026-05-12 23:13:47 +08:00
augushong
748307e826 chore(docker): 将默认服务端口从80更改为8000
更新所有Dockerfile、nginx配置、docker-compose文件和README中的端口引用,统一使用8000端口以避免与系统常用端口的冲突
2026-05-06 19:37:36 +08:00
augushong
383c8ddeca chore(docker): 为所有服务添加 host.docker.internal 主机映射
All checks were successful
build-and-deploy / 直传代码并部署到 Host15 (push) Successful in 1m26s
使容器能够通过 host.docker.internal 访问宿主机服务,方便开发环境调试。
2026-05-03 21:01:19 +08:00
augushong
537f178fa5 ci: 更新部署配置以支持直接分发代码
Some checks failed
build-and-deploy / 直传代码并部署到 Host15 (push) Failing after 11s
- 将工作流容器镜像更换为包含 PHP 和 Composer 的专用镜像
- 在工作流中添加 Composer 依赖安装步骤,配置私有镜像源
- 修改所有 docker-compose.yaml 文件,将卷映射从多个子目录改为映射整个项目根目录,简化部署步骤
2026-05-01 20:45:04 +08:00
augushong
c423e2cb3d ci(deploy): 优化部署配置并增加健康检查
All checks were successful
build-and-deploy / 直传代码并部署到 Host15 (push) Successful in 1m35s
- 将 Docker Compose 卷映射从挂载整个目录改为仅挂载必要的运行时目录,以提高部署安全性和性能
- 在 CI/CD 部署流程中添加容器状态检查和应用健康验证步骤,确保部署后应用正常运行
2026-05-01 19:13:38 +08:00
augushong
59c5222497 fix(Dockerfile): 修正容器入口点以使用bash执行脚本
All checks were successful
build-and-deploy / 直传代码并部署到 Host15 (push) Successful in 50s
确保run.sh脚本在bash环境下执行,避免因缺少shebang或执行权限导致的潜在启动问题。统一所有Dockerfile中的ENTRYPOINT格式。
2026-04-25 00:06:34 +08:00
augushong
b44fcfd86c feat(stack): 新增 stack 模式管理功能
- 新增 `php think admin:stack:mode` 命令,支持 list/use/current/rollback 操作
- 新增 StackModeService 服务,负责模式切换、备份与回滚逻辑
- 在 source/stack/ 目录下添加 default、full、base-build 三种模式的配置文件
- 更新 UlthonAdminService 以注册新的命令行工具
2026-04-24 23:20:13 +08:00