如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个用于分发CycloneDX BOM的仓库服务器。
你可以使用Docker在本地测试:
bashdocker run --env REPO__DIRECTORY=/repo --env ALLOWEDMETHODS__GET="true" --env ALLOWEDMETHODS__POST="true" --env ALLOWEDMETHODS__DELETE="true" --tty --interactive -p 8000:80 cyclonedx/cyclonedx-bom-repo-server
如果需要在多次运行之间持久化BOM仓库存储:
bashmkdir repo docker run --volume "$(pwd)/repo":/repo --env REPO__DIRECTORY=/repo --env ALLOWEDMETHODS__GET="true" --env ALLOWEDMETHODS__POST="true" --env ALLOWEDMETHODS__DELETE="true" --tty --interactive -p 8000:80 cyclonedx/cyclonedx-bom-repo-server
服务器支持Swagger/Open API规范。
JSON端点为/swagger/v1/swagger.json。UI可通过/swagger/index.html访问。
以下是可用端点和方法的摘要:
| 路径 | HTTP方法 | 必需参数 | 可选参数 | 描述 |
|---|---|---|---|---|
| /bom | GET | serialNumber | version | 若仅提供serialNumber参数,将从仓库检索BOM的最新版本。若同时提供serialNumber和version,将检索特定版本的BOM。支持所有CycloneDX BOM格式和版本的HTTP内容协商。 |
| /bom | POST | 请求体中的BOM内容和适当的Content-Type头 | 向仓库添加新BOM。支持所有CycloneDX BOM格式和版本。若提交的BOM没有序列号,将生成一个;若没有版本号,将添加下一个版本号。响应将包含用于引用仓库中BOM的Location头。 | |
| /bom | DELETE | serialNumber | version | 若仅提供serialNumber参数,将删除仓库中该BOM的所有版本。若同时提供serialNumber和version,将仅删除特定版本。 |
注意: BOM序列号对于特定设备/软件版本应是唯一的。当更新同一软件版本的现有BOM时,序列号应保持不变,版本号应递增。因此,不支持更新现有BOM版本。当然,可以删除现有BOM版本并重新发布相同的序列号和版本,但不建议这样做。
从仓库检索BOM:
bashcurl -X GET "https://www.example.com/bom?serialNumber=urn%3Auuid%3A3e671687-395b-41f5-a30f-a58921a69b79" -H "accept: application/vnd.cyclonedx+json; version=1.3"
向仓库添加新BOM:
bashcurl -X POST "https://www.example.com/bom" -H "accept: */*" -H "Content-Type: application/vnd.cyclonedx+json; version=1.3" -d "{\"bomFormat\":\"CycloneDX\",\"specVersion\":\"1.3\",\"serialNumber\":\"urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79\",\"version\":1,\"components\":[{\"type\":\"library\",\"name\":\"acme-library\",\"version\":\"1.0.0\"}]}"
从仓库删除BOM:
bashcurl -X DELETE "https://www.example.com/bom?serialNumber=urn%3Auuid%3A3e671687-395b-41f5-a30f-a58921a69b79" -H "accept: */*"
服务器可通过修改appsettings.json文件或设置以下环境变量进行配置:
| 环境变量名称 | 支持值 | 描述 | 默认值 |
|---|---|---|---|
| REPO__DIRECTORY | 任何有效目录路径 | BOM存储目录 | Repo |
| ALLOWEDMETHODS__GET | true或false | 允许或禁止BOM检索 | false |
| ALLOWEDMETHODS__POST | true或false | 允许或禁止BOM创建 | false |
| ALLOWEDMETHODS__DELETE | true或false | 允许或禁止BOM删除 | false |
认证和授权应在Web服务器或API网关层配置。
为简化部署,可配置允许的方法,默认采用安全选项(默认禁止所有方法)。
建议部署两个BOM仓库服务器实例:
一个需要认证和额外安全控制,允许GET和POST方法以支持BOM发布。
另一个面向公众,仅启用GET方法。如有需要可配置认证。
更高级的认证和授权用例应通过API网关等解决方案处理,超出本项目范围。
注意:根据你的操作环境和风险状况,建议面向公众的实例不要求认证。这使可能与你的组织没有直接商业关系的下游消费者能够检索BOM。
CycloneDX BOM仓库服务器设计为轻量级、高性能的BOM仓库服务器。任何生产Web服务器都应能运行它。
但存在BOM元数据的内存缓存,内存需求将根据需要缓存的BOM元数据量而变化。
所有BOM在存储前会转换为Protocol Buffer格式以提高效率。
除Docker镜像外,服务器可使用Nginx、Apache、IIS或Kestrel托管。更多信息见ASP.NET Core中的Web服务器实现文档。
服务器支持多个前端实例共享仓库存储,可用于完全的主/主高可用集群。
部署到多个数据中心时,建议有一个支持BOM发布的主实例,并使用数据复制到用于分发BOM的其他目标数据中心。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务