Files
ulthon_admin/source/stack/README.md
augushong 1620af9ff2 refactor(stack): 删除 stack.json,README 改为模板使用指南
- 删除 source/stack/stack.json(与 README 模式表重复,无实际用途)
- README 新增使用方式说明:可直接用,推荐复制后自定义
  (admin:update 只更新原始模板,不覆盖开发者副本)
- 同步清理 ulthon-deploy-environment.md 和
  ulthon-update-workflow SKILL.md 中对 stack.json 的引用
- ulthon-deploy-environment.md 补充记录义务规则:
  智能体应确认 project-dev-runtime-deploy.md 是否已记录运行方式,
  必须包含命令执行方式(容器内 vs 宿主机)
2026-07-23 22:01:38 +08:00

60 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Stack 模式目录
本目录维护多种部署/运行模式的独立栈定义。每个模式是 `source/stack/` 下一个独立子目录。
## 使用方式
模式目录可以直接使用,也推荐复制一份出来自定义:
**直接使用**`cd source/stack/docker-dev && docker compose up -d`
**复制后自定义**(推荐):
```bash
# 复制一份模板
cp -r source/stack/docker-dev source/stack/docker-dev-myproject
# 修改副本中的端口、服务配置等
# (如 compose 的 name、ports、volumes 等)
# 运行副本
cd source/stack/docker-dev-myproject && docker compose up -d
```
复制后自定义的好处:
- 框架更新(`admin:update`)只更新原始模板,不覆盖你的副本
- 可以基于同一个模板创建多个实例(如 dev / test 分开跑)
- 端口、服务配置等自定义不污染框架原始模板
## 启动与命令执行
1. `cd source/stack/<mode>`
2. `docker compose up -d`(首次会自动 build
3. 在模式目录内执行命令:`docker compose exec <service> php think ...`
4. 或在仓库根目录:`docker compose -f source/stack/<mode>/docker-compose.yaml exec <service> php think ...`
## 可用模板
| 模式 | 说明 |
|------|------|
| `default` | 默认基线,仓库根目录 `php think run`,无 Docker 文件 |
| `docker-serve` | Docker 部署模式基于基础镜像nginx + php-fpm |
| `docker-dev` | Docker 开发模式nginx + php-fpm + MySQL + Redis + phpMyAdmin + Xdebug |
| `docker-dev-sync` | Docker 开发模式 - Windows I/O 优化rsync 同步,避免 bind mount 慢速问题) |
| `full` | 完整服务栈(规划中),从 PHP 镜像从头构建 |
| `author` | 框架作者维护工具(基础镜像构建、发布脚本等) |
> `author` 为框架作者专用,使用者一般不需要。
## default 目录规则(强约束)
- `source/stack/default/` 必须与代码库默认行为一致(`php think run`,不依赖 Docker
- 默认行为相关文件变更时,必须同步更新 `default` 目录对应文件
- 该规则通过目录维护规范与代码评审保障,不作为运行时阻断条件
## 基础镜像
- `author/docker/Dockerfile.base` 为基础镜像构建文件,属于作者维护范围
- 推荐标签策略:`latest` + 时间戳(如 `20260424120000`