Files
jackyu66gitandCursor 0f320e040b feat: P1 profile/portrait API and freeze local-dev environment
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>
2026-08-02 16:24:57 +08:00

71 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](development.md) · [environment.md](environment.md)。
---
## Local composedeps only
| File | Role |
|---|---|
| `docker-compose.dev.yml`(仓库根) | **默认本地**:仅依赖服务 |
| `deploy/docker-compose.yml` | 与 dev 对齐的依赖入口(兼容旧命令);生产见 prod 文件 |
```bash
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](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
- 演示「一键依赖+应用」给非开发角色(仍非日常编码默认)