
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是一个轻量级 Docker 镜像签名仓库,专为管理预览版本和内部标签镜像的签名信息设计。它提供了签名存储、验证、标签分类等核心能力,帮助团队在开发、测试流程中确保镜像的完整性和来源可信,同时支持对内部流转和预览版本的镜像进行精细化管理。
preview-v1.2.3-rc1),支持自动过期清理internal-v1.2.3),支持权限隔离与审计docker pull 时自动校验签名test-staging、test-prod)分类从指定 registry 拉取镜像(需替换 <registry> 和 <tag> 为实际值):
bashdocker pull <registry>/image-signature-repo:preview-internal-<tag>
4.2.1 最简启动(默认配置)
bashdocker run -d \ --name sig-repo \ -p 8080:8080 \ -v /local/data:/data \ # 持久化存储签名数据 <registry>/image-signature-repo:preview-internal-<tag>
4.2.2 自定义配置启动(指定存储后端与访问控制)
bashdocker run -d \ --name sig-repo \ -p 8080:8080 \ -v /local/data:/data \ -e STORAGE_BACKEND=s3 \ # 使用 S3 存储后端 -e S3_ENDPOINT=https://s3.example.com \ -e S3_BUCKET=sig-repo-bucket \ -e S3_ACCESS_KEY=AKIAEXAMPLE \ -e S3_SECRET_KEY=secret \ -e AUTH_ENABLED=true \ # 启用基本认证 -e AUTH_USER=admin \ -e AUTH_PASSWORD=secure-pass \ <registry>/image-signature-repo:preview-internal-<tag>
yamlversion: '3.8' services: sig-repo: image: <registry>/image-signature-repo:preview-internal-<tag> container_name: sig-repo ports: - "8080:8080" volumes: - sig-repo-data:/data # 数据卷持久化 environment: - STORAGE_BACKEND=filesystem # 本地文件系统存储 - DATA_DIR=/data # 存储路径(容器内) - PORT=8080 # 服务端口 - LOG_LEVEL=info # 日志级别(debug/info/warn/error) - PREVIEW_TAG_TTL=7d # 预览标签自动过期时间(默认 7 天) - AUTH_ENABLED=true - AUTH_USER=team-admin - AUTH_PASSWORD=team-pass-123 restart: unless-stopped volumes: sig-repo-data: # 定义持久化数据卷
| 环境变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
STORAGE_BACKEND | 签名数据存储后端 | filesystem | filesystem/s3/gcs |
DATA_DIR | 本地存储路径(仅 filesystem 后端) | /data | /var/sig-repo/data |
S3_ENDPOINT | S3 后端服务地址(仅 s3 后端) | - | https://s3.example.com |
S3_BUCKET | S3 存储桶名称(仅 s3 后端) | - | sig-repo-bucket |
S3_ACCESS_KEY | S3 访问密钥(仅 s3 后端) | - | AKIAEXAMPLE |
S3_SECRET_KEY | S3 密钥(仅 s3 后端) | - | secret-key-123 |
PORT | 服务监听端口 | 8080 | 9000 |
LOG_LEVEL | 日志输出级别 | info | debug/warn/error |
PREVIEW_TAG_TTL | 预览标签自动过期时间(如 7d/30h) | 7d | 3d |
AUTH_ENABLED | 是否启用基本认证 | false | true |
AUTH_USER | 认证用户名(AUTH_ENABLED=true 时必填) | - | admin |
AUTH_PASSWORD | 认证密码(AUTH_ENABLED=true 时必填) | - | secure-pass-456 |
4.5.1 添加镜像签名
通过 HTTP API 提交镜像签名(需替换 <image-digest>、<tag-type> 等参数):
bashcurl -X POST http://localhost:8080/api/v1/signatures \ -H "Content-Type: application/json" \ -u "admin:secure-pass" \ # 若启用认证 -d '{ "image_digest": "sha256:abc123...", # 镜像唯一 digest "tag": "preview-v1.2.3-rc1", # 镜像标签 "tag_type": "preview", # 标签类型:preview/internal "signature": "base64-encoded-signature...", # 签名内容(base64 编码) "signer": "ci-bot@example.com", # 签名者信息 "metadata": {"git_commit": "a1b2c3d"} # 附加元数据 }'
4.5.2 验证镜像签名
查询并验证指定镜像 digest 的签名:
bashcurl -X GET "http://localhost:8080/api/v1/signatures?digest=sha256:abc123..." \ -u "admin:secure-pass"
响应示例:
json{ "digest": "sha256:abc123...", "signatures": [ { "tag": "preview-v1.2.3-rc1", "tag_type": "preview", "signer": "ci-bot@example.com", "created_at": "2024-05-20T10:30:00Z", "metadata": {"git_commit": "a1b2c3d"}, "is_valid": true } ] }
4.5.3 管理内部标签
列出所有内部标签的签名记录:
bashcurl -X GET "http://localhost:8080/api/v1/tags?type=internal" \ -u "admin:secure-pass"
-v 挂载数据卷或配置外部存储后端(如 S3),避免容器重启导致签名数据丢失。AUTH_ENABLED 并使用强密码,建议结合 TLS 加密(通过反向代理如 Nginx 配置 HTTPS)。preview-internal-<tag> 中,<tag> 为版本号,需与 Docker 客户端版本(建议 20.10+)及 Notary 工具(建议 v2.0+)兼容。PREVIEW_TAG_TTL=7d,过期预览标签将自动清理,如需保留历史数据可调整该参数或禁用自动清理(设置 PREVIEW_TAG_TTL=0)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务