Add host-first environment contracts (Local vs CI vs Prod), deps-only compose, and the Profile → Portrait → deep-access mock payment slice with device identity and auto-migrate on API startup. Co-authored-by: Cursor <cursoragent@cursor.com>
2.1 KiB
2.1 KiB
Docker Policy — AI Contract
Docker SHOULD be used for
| ✓ | Examples |
|---|---|
| 依赖数据服务 | PostgreSQL |
| 缓存 | Redis(需要时) |
| 消息队列 | 需要时再加 |
| 对象存储 | MinIO / S3 兼容(需要时) |
| 第三方依赖模拟 | mailhog 等(需要时) |
| 生产/CI 应用交付 | 不可变 api / web 镜像 |
Docker SHOULD NOT be used for
| ✗ | Why |
|---|---|
| Go API 日常开发 | 拖慢反馈;用本机 go run / air |
| Vue H5 日常开发 | 拖慢 HMR;用本机 Vite |
| Hot reload 工作流 | 禁止「改代码 → docker build → run」 |
| 把本机当成迷你 K8s | 违反 constitution:本地反馈速度优先 |
见 development.md · environment.md。
Local compose(deps only)
| File | Role |
|---|---|
docker-compose.dev.yml(仓库根) |
默认本地:仅依赖服务 |
deploy/docker-compose.yml |
与 dev 对齐的依赖入口(兼容旧命令);生产见 prod 文件 |
docker compose -f docker-compose.dev.yml up -d
允许的服务(local): postgres(+ 需要时 redis / minio)
禁止默认加入(local): api · user-h5 · worker · nginx
Production / CI images
| Artifact | Location (target) |
|---|---|
| Backend Dockerfile | deploy/Dockerfile.api(按需新增) |
| H5/Nginx Dockerfile | deploy/Dockerfile.user-h5(按需新增) |
| Prod compose / K8s | deploy/docker-compose.prod.yml 等 |
生产镜像规则见 deployment.md:禁止 latest;语义化版本或 git SHA。
AI MUST NOT
- 把「本地开发」文档写成只能
docker compose up全栈。 - 在业务 PR 里强制同事每次改代码都 build 应用镜像。
- 将
.env秘密COPY进镜像。 - 混用
docker-compose.dev.yml与 prod 环境变量文件。
When full-stack compose is OK
仅当任务明确是:
- 验证 prod compose / 镜像入口
- CI integration job
- 演示「一键依赖+应用」给非开发角色(仍非日常编码默认)