Files
ulthon_admin/source/stack

Stack 模式目录

本目录维护多种部署/运行模式的独立栈定义。每个模式是 source/stack/ 下一个独立子目录。

使用方式

模式目录可以直接使用,也推荐复制一份出来自定义:

直接使用cd source/stack/docker-dev && docker compose up -d

复制后自定义(推荐):

# 复制一份模板
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