如何解决Prisma 在 jenkins 中随机找不到 docker 图像
我们有两个阶段,一个是构建 docker 镜像,另一个是使用 Prisma 插件扫描它。
构建镜像:
stage('Build Docker image preproduction') {
steps {
script {
dockerImage = docker.build("${env.docker_image_name}")
}
}
}
stage('Prisma Cloud Scan') {
steps {
prismaCloudScanImage dockerAddress: "$DOCKER_HOST",image: "${env.docker_image_name}:latest",logLevel: 'debug',resultsFile: 'prisma-cloud-scan-results.json'
}
}
这在大多数情况下都能正常工作,但在某些情况下几乎(1 比 20)作业失败,我们收到此错误:
[PRISMACLOUD] Scanning images remotely on default-5mn8k
[PRISMACLOUD] Waiting for scanner to complete
[PRISMACLOUD] /home/jenkins/agent/workspace/ild_chore_add-prisma-to-pipeline/twistcli6275500796561372150 images scan otherimagename:1234 --docker-address tcp://localhost:2375 --min-scan-time 1611048549280 --ci --publish --details --address https://XXXXXXXXXprisma_host_hereXXXXX --ci-results-file prisma-cloud-scan-results.json
[ild_chore_add-prisma-to-pipeline] $ /home/jenkins/agent/workspace/ild_chore_add-prisma-to-pipeline/twistcli6275500796561372150 images scan otherimagename:1234 --docker-address tcp://localhost:2375 --min-scan-time 1611048549280 --ci --publish --details --address https://XXXXXXXXXprisma_host_hereXXXX --ci-results-file prisma-cloud-scan-results.json
[PRISMACLOUD] failed to find image otherimagename:1234
[PRISMACLOUD] Scanner failed to run properly. Status: 1
在此消息之前,我们可以在控制台中看到图像已经存在于 docker 主机中:
+ docker build -t otherimagename:1234 .
Sending build context to Docker daemon 20.54MB
Step 1/2 : FROM nginx:stable
---> b9e1dc12387a
Step 2/2 : COPY docs /usr/share/nginx/html
---> Using cache
---> 09787d1a562e
Successfully built 09787d1a562e
Successfully tagged otherimagename:1234
你能帮我弄清楚发生了什么吗?我们还在两个步骤之间设置了一个睡眠时间,但仍然面临问题。
解决方法
谢谢,@EFOE,这个 docker 配置提示有帮助。我通过詹金斯遇到了同样的问题。扫描在 Jenkins EC2 Jenkins 代理(Win 和 Linux)上针对各自的映像运行。虽然 Linux 映像扫描没有问题,但 Windows 扫描未能找到 docker 映像。
我在 windows EC2 代理上调试了 docker 守护进程日志,发现这些图像实际上可以在这些代理上本地访问,但 Prisma 插件无法访问 Docker API 以获取图像详细信息。
由于我的代理从未安装过任何浏览器(IE 已损坏),因此一旦我将 chrome 安装为浏览器,Prisma 插件就能够访问 docker 图像并执行扫描。所以基本上我的代理需要一个客户端来访问 Docker API。
通过 Prisma 访问 twincli 二进制文件时没有问题。只有适用于 Windows 的 Prisma Jenkins 插件有问题。
希望如果有人遇到类似问题,这会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。