Prisma 随机在 jenkins 中找不到 docker 图像

Posted

技术标签:

【中文标题】Prisma 随机在 jenkins 中找不到 docker 图像【英文标题】:Prisma Randomously not finding docker image in jenkins 【发布时间】:2021-04-23 15:43:17 【问题描述】:

我们有两个阶段,一个是构建 docker 映像,另一个是使用 prisma pluging 扫描它。

构建图像:

            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)几乎(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

你能帮我弄清楚发生了什么吗?我们还在两个步骤之间设置了一个睡眠时间,但仍然面临问题。

【问题讨论】:

它总是在同一个slave上运行吗? 不,我会尝试强制在之前失败的代理上运行构建。 我启动了几次,然后出现了问题。如果我在失败的节点上修复了构建,则构建每次都失败,因此它解释了随机行为。我会尝试看看这个特定的节点。 感谢您的评论,问题是由于本地docker注册表配置错误,我们通过清理注册表修复了它。对于特定的奴隶。 太棒了!请回答此问题并在 48 小时后接受。参考:***.com/help/self-answer 【参考方案1】:

谢谢,@EFOE,docker 配置的提示有所帮助。我通过詹金斯遇到了同样的问题。扫描在 Jenkins EC2 Jenkins 代理上运行,Win 和 Linux 都针对各自的图像。虽然 Linux 映像扫描没有问题,但 Windows 扫描未能找到 docker 映像。

我在 windows EC2 代理上调试了 docker daemon 日志,发现实际上可以在这些代理上本地访问图像,但 Prisma 插件无法访问 Docker API 以获取图像详细信息。

由于我的代理从未安装任何浏览器(IE 已损坏),一旦我将 chrome 安装为浏览器,Prisma 插件就能够访问 docker 图像并执行扫描。所以基本上我的代理需要一个客户端来访问 Docker API。

通过 Prisma 访问 twistcli 二进制文件时没有问题。仅适用于 Windows 的 Prisma Jenkins 插件有问题。

希望,如果有人遇到类似问题,这会有所帮助。

【讨论】:

以上是关于Prisma 随机在 jenkins 中找不到 docker 图像的主要内容,如果未能解决你的问题,请参考以下文章

在 Jenkins 的任务 gradle 中找不到 assembleRelease

Jenkins 上的 Sonarscanner:在 JAVA_HOME 或 PATH 中找不到“java”可执行文件

在您的环境中找不到 Jenkins 和 maven JAVA_HOME [重复]

在詹金斯的任务gradle中找不到汇编版本

尽管存在方法,但在对象路径中找不到 D-Bus 方法

KotlinJS + Typescript:在 d.ts 文件中找不到 Atomicfu TraceBase 参考