mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-08-30 12:45:32 +08:00
29 lines
1.9 KiB
Markdown
29 lines
1.9 KiB
Markdown
# 部署环境与命令执行
|
||
|
||
> 来源:框架内置(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` 不需要前缀。
|