mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
- 新增 source/stack/docker-dev-sync/ 模式目录 - 宿主代码映射到 /var/www/source(bind mount 中转) - 容器内 rsync 定时同步到 /var/www/html(原生文件系统) - vendor 由 Docker build 管理,不参与同步 - rsync 使用 --no-perms 避免保留 Windows 源文件权限 - 排除 docker-dev/、runtime/、.git/ 等无关目录 - SYNC_INTERVAL 环境变量可配置轮询间隔(默认 3 秒) - 更新 stack.json 注册模式并声明 sync.sh 为托管文件 - 调整 CI 构建流程:先安装依赖再切换 stack 模式
2.0 KiB
2.0 KiB
Stack 模式目录规范
本目录用于维护"模式化生效文件",由 php think admin:stack:mode 命令读取并覆盖到仓库根目录。
目录结构
source/stack/stack.json:全局清单,定义default_mode、managed_files、modes元数据。source/stack/default/:默认行为基线目录(php think run,纯 PHP 内置服务器运行)。source/stack/{mode}/:具体模式目录,按"仓库相对路径"放置文件。
default 目录规则(强约束)
source/stack/default/必须与代码库默认行为一致。- 默认行为为
php think run(ThinkPHP 内置服务器),不依赖 Docker。 - 当默认行为文件变更时(如
.gitea/workflows/build-and-deploy.yml),必须同步更新default目录对应文件。 - 该规则通过目录维护规范与代码评审保障,不作为每次切换命令的运行时阻断条件。
模式覆盖规则
- 仅允许覆盖
stack.json的managed_files中声明的文件。 - 切换时按以下优先级解析最终文件:
- 目标模式提供某文件:使用目标模式文件;
- 目标模式未提供某文件:回落使用
default目录对应文件; - 两者均未提供:从根目录删除该文件(带备份,可回滚)。
可用模式
| 模式 | 说明 |
|---|---|
default |
默认基线,php think run 运行,无 Docker 文件 |
docker-serve |
Docker 部署模式(基于基础镜像,nginx+php-fpm) |
full |
全量构建模式(兼容历史行为,从 PHP 镜像从头构建) |
base-build |
基础镜像 + 应用构建模式(author_only) |
docker-dev |
Docker 开发模式(nginx+php-fpm+MySQL+Redis+phpMyAdmin+Xdebug) |
docker-dev-sync |
Docker 开发模式 - Windows I/O 优化(rsync 定时同步,避免 bind mount 慢速问题) |
基础镜像说明
base-build/docker/Dockerfile.base为基础镜像构建文件,默认标记为作者维护范围(author_only=true)。- 推荐标签策略:
latest+ 时间戳(如20260424120000)。