# Stack 模式目录规范 本目录用于维护“模式化生效文件”,由 `php think admin:stack:mode` 命令读取并覆盖到仓库根目录。 ## 目录结构 - `source/stack/stack.json`:全局清单,定义 `default_mode`、`managed_files`、`modes` 元数据。 - `source/stack/default/`:默认行为基线目录。 - `source/stack/{mode}/`:具体模式目录,按“仓库相对路径”放置文件。 ## default 目录规则(强约束) - `source/stack/default/` 必须与代码库默认行为一致。 - 当默认行为文件变更时(如 `Dockerfile`、`docker-compose.yaml`、`.gitea/workflows/build-and-deploy.yml`),必须同步更新 `default` 目录对应文件。 - 该规则通过目录维护规范与代码评审保障,不作为每次切换命令的运行时阻断条件。 ## 模式覆盖规则 - 仅允许覆盖 `stack.json` 的 `managed_files` 中声明的文件。 - 切换时按“目标模式优先,default 模式兜底”解析最终文件内容: - 目标模式提供某文件:使用目标模式文件; - 目标模式未提供某文件:回落使用 `default` 目录对应文件。 - 首期固定模式:`default`、`full`、`base-build`。 ## 基础镜像说明 - `base-build/docker/Dockerfile.base` 为基础镜像构建文件,默认标记为作者维护范围(`author_only=true`)。 - 推荐标签策略:`latest` + 时间戳(如 `20260424120000`)。