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

2.1 KiB
Raw Permalink Blame History

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 composedeps 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
  • 演示「一键依赖+应用」给非开发角色(仍非日常编码默认)