要在 GitLab 中精简版 SBOM 模式下启动扫描器,需在 CI/CD 进程中配置镜像扫描时编辑 .gitlab-ci.yml 配置文件,如下所示:
scan_image:
stage: scanner
image:
name:repo.cloud.example.com/repository/company/scanner:v.2.0.0-lite
entrypoint: [""]
pull_policy: always
k8s
在提供的示例中,为 Kubernetes 指定了 k8s 标签,您也可以为其他受支持的编排平台指定标签。
SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
COMPANY_EXT_REGISTRY_TLS_CERT: ${COMPANY_EXT_REGISTRY_TLS_CERT}
BUILD_NUMBER: ${CI_JOB_ID}
BUILD_PIPELINE: ${CI_PIPELINE_ID}
API_TOKEN: <API 令牌值>
HTTP_PROXY: <用于 HTTP 请求的代理服务器>
HTTPS_PROXY: <用于 HTTPS 请求的代理服务器>
NO_PROXY: <要从代理范围排除的域或响应的域掩码>
COMPANY_EXT_REGISTRY_TLS_CERT变量中用于与镜像仓库进行安全连接的证书的详细信息以 .PEM 格式的字符串指定:
-----BEGIN CERTIFICATE-----\n... 证书详细信息> ...\n-----END CERTIFICATE-----。
API_CA_CERT: ${KCS_CA_CERT}
如果未设置 API_CA_CERT 变量,则扫描将会开始但无法完成。
API_BASE_URL: <网址>
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json
artifacts:
paths:
- artifact-result.json
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --html --stdout > artifact-result.html
artifacts:
paths:
- artifact-result.html
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --spdx --stdout > artifact-result.spdx
artifacts:
paths:
- artifact-result.spdx
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --cdx --stdout > artifact-result.cdx.json
artifacts:
paths:
- artifact-result.cdx.json
有关将扫描器配置为在 GitLab 中精简版 SBOM 模式下运行并以 .HTML 格式生成构件的示例
页首