docker/buildkit-syft-scannerdocker/buildkit-syft-scanner 镜像是将 Syft 扫描器 打包为 BuildKit SBOM 生成器 的工具,用于在 Docker 构建过程中集成软件物料清单(SBOM)扫描结果,并将其作为构建证明(attestation)与输出镜像关联。
该镜像实现了 BuildKit SBOM 扫描协议,可与 BuildKit 构建工具链无缝集成,为镜像构建流程提供自动化的 SBOM 生成能力。
buildctl 或支持 BuildKit 高级选项的构建工具调用。--opt 参数(如 buildctl)。在使用 buildctl 构建镜像时,通过 --opt attest:sbom=generator=... 参数指定本扫描器镜像,即可在构建过程中生成 SBOM 证明:
bashbuildctl build ... \ --output type=image,name=<目标镜像名称>,push=true \ --opt attest:sbom=generator=docker/buildkit-syft-scanner
| 参数 | 描述 | 示例值 |
|---|---|---|
attest:sbom=generator | 指定 SBOM 生成器镜像,需设置为 docker/buildkit-syft-scanner | generator=docker/buildkit-syft-scanner |
--output type=image,... | 输出配置,需包含 name=<目标镜像名称> 和 push=true(如需推送镜像) | type=image,name=myapp:latest,push=true |
构建并推送镜像 myapp:latest,同时生成 SBOM 证明:
bashbuildctl build \ --frontend dockerfile.v0 \ --local context=. \ --local dockerfile=. \ --output type=image,name=myapp:latest,push=true \ --opt attest:sbom=generator=docker/buildkit-syft-scanner
克隆项目仓库并进入目录:
bashgit clone [***] cd buildkit-syft-scanner
推荐启动本地临时 registry,用于推送开发镜像:
bashdocker run -d -p 5000:5000 --rm --name registry registry:2
使用 make dev 命令构建开发镜像并推送到本地 registry(需替换 <本地仓库地址> 为实际 registry 地址):
bashmake dev IMAGE=<本地仓库地址>/buildkit-syft-scanner:dev
示例(推送到本地 registry localhost:5000):
bashmake dev IMAGE=localhost:5000/buildkit-syft-scanner:dev
运行示例构建测试开发镜像功能:
bashmake examples IMAGE=localhost:5000/buildkit-syft-scanner:dev
通过 buildctl 使用开发镜像生成 SBOM:
bashbuildctl build ... \ --output type=image,name=<目标镜像名称>,push=true \ --opt attest:sbom=generator=<本地仓库地址>/buildkit-syft-scanner:dev
示例:
bashbuildctl build \ --frontend dockerfile.v0 \ --local context=. \ --local dockerfile=. \ --output type=image,name=myapp:dev,push=true \ --opt attest:sbom=generator=localhost:5000/buildkit-syft-scanner:dev
buildkit-syft-scanner 主要作为 BuildKit 与 Syft 之间的适配层,旨在保持代码精简。贡献通常更适合提交至上游项目(BuildKit 或 Syft)。若需为本项目贡献,请优先关注协议兼容性修复或文档改进。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务