我想要运行 trivy sbom 生成器来生成一些图像,并将其从 Azure DevOps 管道推送到 Azure 容器注册表。
我的任务看起来像
- task: AzureCLI@2
inputs:
azureSubscription: 'MySubscription'
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
az acr login --name ACR_Name
docker run --rm -v $(System.DefaultWorkingDirectory):/src aquasec/trivy image --format cyclonedx --output /src/sbom.json ACR_Name.azurecr.io/IMAGENAME:latest
不幸的是,它不能这样工作,但例外情况是
2024-11-12T12:24:45Z FATAL 致命错误图像扫描错误:扫描错误:无法初始化扫描仪:无法初始化图像扫描仪:无法在 [“docker” “containerd” “podman” “remote”] 中找到指定的图像“ACR_NAME/IMAGENAME:latest”:发生了 4 个错误:
- docker 错误:无法检查映像 (...):无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护程序是否正在运行?
- containerd 错误:未找到 containerd 套接字:/run/containerd/containerd.sock
- podman 错误:无法初始化 Podman 客户端:未找到 podman 套接字:stat podman/podman.sock:没有此文件或目录
- 远程错误:GET https://ACR_NAME/oauth2/token?scope=repository%3A...%3Apull&service=...: UNAUTHORIZED:需要身份验证,请访问 https://aka.ms/acr/authorization了解更多信息。
同时,我可以docker pull IMAGENAME
按预期从此脚本内部运行。我甚至尝试在运行 trivy 之前运行它,但它似乎不使用本地图像(结果完全相同)
是否有可能在容器内部“传递”授权?