Files
ulthon_admin/.agents/rules/ulthon-deploy-environment.md

29 lines
1.9 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.

# 部署环境与命令执行
> 来源框架内置ulthon-
> 作用域:部署配置、命令执行环境判断
> 触发条件:执行 php think 命令、配置部署模式、切换运行环境时加载
## 部署栈模式
- `source/stack/` 为模式文件统一目录(含 `default/` 与各模式目录)
- `default/` 必须与代码库默认行为一致
- 默认行为相关文件变更时需同步更新 `source/stack/default/` 对应文件
## 运行模式判断B-route 工作流)
执行 `php think` 命令前必须先判断当前运行模式。B-route 工作流下,模式由"当前所在目录"决定,不再覆盖仓库根目录。
**判断方式**:检查仓库根目录是否含 Docker 文件(`Dockerfile` / `docker-compose.yaml`)。
- **根目录无 Docker 文件default 模式)**:宿主机直接执行 `php think`
- 默认基线行为是 `php think run`ThinkPHP 内置服务器)。
- 启动开发服务器:在仓库根目录执行 `php think run`
- **需要 Docker 模式**:进入对应模式目录启动栈。
- 启动:`cd source/stack/<mode>``docker compose up -d`
- 模式目录内的 `docker-compose.yaml` 是该模式的栈定义bind mount 通常指向仓库根目录。
- 在容器外执行 `php think``docker compose -f source/stack/<mode>/docker-compose.yaml exec <service> php think ...`,或在模式目录内 `docker compose exec <service> php think ...`
- 示例:`docker compose -f source/stack/docker-dev/docker-compose.yaml exec ulthon_admin php think tools:http:call`
- **可用模式**见 `source/stack/stack.json``source/stack/README.md`default / docker-serve / docker-dev / docker-dev-sync / full / author 等)。
- **判断技巧**:如果不确定当前是否处于容器内,看 `pwd` 是否在仓库根、根目录有无 `Dockerfile``docker ps` 是否有相关容器在跑。容器内执行 `php think` 不需要前缀。