1.7 KiB
1.7 KiB
镜像仓库规则
执行发布前,从用户输入和当前项目配置中确定以下信息:
| 字段 | 要求 |
|---|---|
| Registry | 必须显式确定,例如 registry.example.com |
| Repository | 必须包含项目约定的 namespace;缺省取 git 仓库名 |
| Tag | 必须显式确定;优先使用版本号或 Git SHA |
| Platform | 必须显式确定,例如 linux/amd64 或 linux/amd64,linux/arm64 |
| Dockerfile | 默认 Dockerfile,不存在或项目另有约定时明确指定 |
| Context | 默认当前项目根目录 |
信息来源优先级:
- 用户本次请求中明确给出的值。
- 当前项目的
.env与AGENTS.md、发布文档。 - Makefile、CI 配置或现有构建脚本中一致且无歧义的配置。
- 询问用户。
不要从其他项目、shell history 或无关的本地配置中猜测发布目标。
认证
使用 Docker 当前配置的 credential helper 或已有登录状态。可用不泄露凭据的只读操作 检查目标是否可访问。认证缺失或过期时,停止并让用户自行完成登录。
不要读取、打印或复制以下内容:
- registry 密码或访问令牌
~/.docker/config.json中的认证字段- CI secret 的值
- 包含凭据的环境变量值
Tag 策略
- 未显式给出
--tag/IMAGE_TAG时,使用契约「版本号」渲染出的 tag (正式1.4.2,测试1.4.2-feat-login.7.gabc1234),不要退回git describe,不要询问后另选一套。 - 正式产物 tag 与 Git tag
vX.Y.Z对应,但镜像 tag 不含v;默认视为不可变。 latest、stable、裸分支名等浮动 tag 只有在用户明确要求时才额外发布, 不能代替上面那条唯一身份。