Files
ulthon_admin/source
augushong 5797885f3d fix(stack): 修复 bind mount 遮蔽 build 期 symlink 导致容器启动失败
B-route 下 build context=仓库根 + bind mount /var/www/html 有两个问题:

1. ENTRYPOINT 引用 /var/www/html/source/docker/run.sh 在运行期找不到:
   build 期的 symlink 被 bind mount 完全覆盖,容器看到的是宿主机
   仓库根的 source/docker/(只有 nginx.conf/zz-phprun.ini/zz-phpfpm.conf,
   没有 run.sh)

2. 模式目录 source/docker/ 不自包含:
   只有 run.sh/zzz-dev.ini/zzz-xdebug.ini,缺基础配置

修复(docker-dev 模式):
- run.sh 改为用 SCRIPT_DIR 自动检测脚本所在目录
- Dockerfile ENTRYPOINT/chmod 改为完整路径
  /var/www/html/source/stack/docker-dev/source/docker/run.sh
- 基础配置(nginx.conf/zz-phprun.ini/zz-phpfpm.conf)复制到模式目录
  使其自包含

验证:docker compose build 通过,up 容器稳定运行,
nginx + PHP-FPM 启动成功,ThinkPHP CLI 正常(v8.1.4)
2026-07-22 23:29:50 +08:00
..
2026-03-26 20:22:34 +08:00

source/

本目录用于收纳“主工程之外的配套内容”,包括多端代码、各类子项目、资料与附件等,不影响当前主工程运行与发布。根目录仍是主工程入口。

目录约定

  • source/assets/:通用静态资源(模板、字体、设计稿导出等)
    • source/assets/templates/
    • source/assets/fonts/
  • source/docs/:项目资料(说明文档、流程文档、交付文档等)
  • source/attachments/:附件与素材(非代码交付物、原始文件等)
  • source/docker/:本项目 Docker 运行所需的配置文件nginx、PHP、PHP-FPM、启动脚本
  • source/clients/:各端前端/客户端工程
    • source/clients/uniapp/uni-appVue3 + Vite + JavaScript
    • source/clients/vue-screen/:预留“大屏端”目录
  • source/projects/:各类子项目(可为 PHP 或其他技术栈,如 Python/Go/Node 工具或服务)
  • source/stack/:部署栈模式文件(default/ 与各模式目录)

命名规则

  • 统一小写,使用 - 连接(如 vue-screen
  • 目录按 clients / projects / assets / docs / attachments / docker / stack 分类

依赖与构建产物

  • 每个子工程自带依赖清单(例如 package.json
  • 禁止提交依赖目录与构建产物(例如 node_modules/dist/
  • 资料与附件目录建议保留原始格式,避免混入可执行产物或临时缓存

安全约束

  • 禁止在该目录提交任何密钥/证书/私有 token
  • 如需环境变量,提交 .env.example,不要提交真实 .env