You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker scratch基础镜像上传JFrog后Xray扫描无有效结果求助

解决Xray扫描Buildroot自定义镜像空SBOM的方案

1. 让Buildroot生成并保留包元数据

Xray扫描依赖镜像内的包管理器数据或SBOM文件,Buildroot默认不会把这些数据放进rootfs,得修改Buildroot配置:

  • 启用BR2_PACKAGE_MANAGER,选opkg或dpkg(二选一即可)
  • 开启BR2_PACKAGE_MANAGER_SBOM,让Buildroot生成SPDX格式的SBOM文件
  • 确保生成的SBOM文件(默认路径是/usr/share/spdx/sbom.spdx)被包含进最终的rootfs tarball里,别在构建时删掉

2. 给Docker镜像添加SBOM相关标签

在Dockerfile里加几个LABEL,帮助Xray快速定位SBOM:

FROM scratch
ADD rootfs.tar /
# 基础镜像信息(可选但推荐)
LABEL org.opencontainers.image.title="Custom Buildroot OS"
LABEL org.opencontainers.image.version="v1.0"
# 指定SBOM文件路径
LABEL org.opencontainers.image.spdx="file:///usr/share/spdx/sbom.spdx"

3. 保留包管理器的数据库文件

Xray会读取包管理器的状态文件来识别组件,所以要确保这些文件存在:

  • 用opkg的话,保留/var/lib/opkg/status和相关目录
  • 用dpkg的话,保留/var/lib/dpkg/status和/var/lib/dpkg/info目录
    Buildroot开启对应的包管理器后会自动生成这些文件,别在后续清理环节删掉它们

4. 手动生成SBOM并关联到镜像

如果Buildroot自带的SBOM生成满足不了需求,用第三方工具生成后关联:

  • 用syft生成SBOM:
syft your-image-name:tag -o spdx-json > sbom.json
  • 用JFrog CLI把SBOM附加到Artifactory里的镜像:
jf rt attach sbom.json your-repo-name/your-image-name:tag

内容的提问来源于stack exchange,提问作者Tracy McGrady

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:13:23