# 环境变量与部署模板

这份模板承载第16章“配置与环境问题”的项目级真相源。它不替代 `.env.example`，而是把变量含义、构建命令、部署入口和风险写清楚。

## 1. 环境变量清单

| 变量名 | 用途 | 必填 | 默认值 | dev/test/prod 差异 | 示例 |
| --- | --- | --- | --- | --- | --- |
| `APP_BASE_URL` | | 是/否 | | | |
| `DATABASE_URL` | | 是/否 | | | |
| `REDIS_URL` | | 是/否 | | | |

规则:

- 不把真实密钥写入仓库。
- 每个变量都要说明“谁读取它”“在什么阶段生效”“缺失时会怎样”。
- 若变量只属于某一部署环境，必须写明该环境的注入方式。

## 2. 构建与运行命令

| 场景 | 命令 | 预期结果 | 失败时常见原因 |
| --- | --- | --- | --- |
| 开发 | | | |
| 构建 | | | |
| Lint | | | |
| Typecheck | | | |
| Test | | | |
| Docker build | | | |

规则:

- `dev/build/lint/test/typecheck` 至少列出存在与否和替代命令。
- 如果某个命令本地能跑但 CI 不能跑，必须记录差异来源。

## 3. CI / CD 入口

| 入口 | 文件位置 | 用途 | 依赖变量 / Secret | 失败影响 |
| --- | --- | --- | --- | --- |
| GitHub Action / CI | | | | |
| Dockerfile | | | | |
| nginx / ingress | | | | |
| k8s / compose | | | | |

## 4. 健康检查与发布约束

| 项目 | 约束 | 验证方式 | 失败处理 |
| --- | --- | --- | --- |
| 健康检查 | | | |
| 端口 / host | | | |
| 日志路径 | | | |
| 迁移 / seed | | | |
| 灰度 / 回滚 | | | |

## 5. 配置变更前必须说明

- 改了哪些配置文件：`.env*` / `package.json` / `Dockerfile` / `nginx` / `k8s yaml` / `CI workflow` / `tsconfig` / `vite/next config`
- 为什么要改
- 会影响哪些环境
- 哪些命令必须重跑
- 回滚方式是什么
