微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jenkins CI 管道中的锚定容器扫描

如何解决Jenkins CI 管道中的锚定容器扫描

我需要有关 Jenkinsfile CI 文件的帮助。

Jenknsfile 中的代码如下所示:

pipeline {
  environment {
    registry = "user/demo1"
    registryCredential = 'dockerhub'
    dockerImage = ''
  }
  agent any
  stages {
    stage('Building image') {
      steps{
        script {
          dockerImage = docker.build registry + ":$BUILD_NUMBER"
        }
      }
    }

    stage('Container Image') {
      steps{
        script {
          sh 'echo "docker.io/user/demo1 `pwd`/Dockerfile" > anchore_images'
          anchore name: 'anchore_images'
        }
      }
    }

    stage('Deploy Image') {
      steps{
        script {
          docker.withRegistry( 'https://registry.hub.docker.com',registryCredential ) {
            dockerImage.push()
          }
        }
      }
    }
  }
}

当我包含此阶段后容器映像阶段不存在时,它运行良好。它一直运行到构建阶段,然后失败。

这是错误输出

2021-05-05T09:36:31.884 INFO   AnchoreWorker   Submitting docker.io/user/demo1 for analysis
2021-05-05T09:36:41.630 ERROR  AnchoreWorker   anchore-engine add image Failed. URL: http://localhost:8228/v1/images,status: HTTP/1.1 400 BAD REQUEST,error: {
  "detail": {
    "error_codes": [
      "REGISTRY_IMAGE_NOT_FOUND"
    ],"raw_exception_message": "Error encountered in skopeo operation. cmd=/bin/sh -c skopeo   inspect --raw --tls-verify=false  docker://docker.io/user/demo1:latest,rc=1,stdout=None,stderr=b'time=\"2021-05-05T09:36:37Z\" level=fatal msg=\"Error parsing image name \\\\\"docker://docker.io/user/demo1:latest\\\\\": Error reading manifest latest in docker.io/user/demo1: manifest unkNown: manifest unkNown\"\\n',error_code=REGISTRY_IMAGE_NOT_FOUND"
  },"httpcode": 400,"message": "cannot fetch image digest/manifest from registry"
}

请帮我解决这个问题。

解决方法

您的锚点注册表没有可供扫描的图像。 这是将图像添加到注册表的方法

anchore-cli image add dockerImage 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。