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

如何在 Jenkins Pipeline 脚本中使用 Kaniko 构建 Docker Image

如何解决如何在 Jenkins Pipeline 脚本中使用 Kaniko 构建 Docker Image

我想在我的 jenkins 脚本(groovy)文件中使用 Kaniko 来构建图像。

我的 jenkins 中没有其他配置,我只想使用我的 jenkins 脚本

脚本如下所示:

podTemplate(label: 'jenkins-kaniko',containers:[
    containerTemplate(name: 'kaniko',image: 'gcr.io/kaniko-project/executor:debug',command: '/busyBox/cat',ttyEnabled: true)
    ],volumes: [
                secretVolume(mountPath: '/home/jenkins/.aws/',secretName: 'aws-secret'),configMapVolume(mountPath: '/kaniko/.docker/',configMapName: 'docker-config')
                
    ])

{
    node ('jenkins-kaniko') {

    environment {
        registry = ""
        registryCredential = ''
        imageName = 'jenkins_slave'
        dockerImage = ''
        //dockerHome = tool 'docker_latest'
        //PATH = "$dockerHome/bin:$PATH"
    }
   
    stages {
      stage('Prepare') {
                steps {
                    echo "CheckOut"
                    script {
                        //here is checkout git code
                    }
                   
                }
            }
       stage('Building image') {
/*            agent {
                label 'jenkinskaniko'
            }
  */          
             steps {
                dir('jenkins-slave'){
            
                echo 'build image'
                container('kaniko'){
                sh "/kaniko/executor --dockerfile `pwd`/Dockerfile `pwd` --insecure --skip-tls-verify --cache=true --destination= jenkins_slave:${env.BUILD_ID}"
                }
                } 
            
            }
            
           
        
               
        }
    
        stage('Deploy Image'){
                steps {
                    script {
                       docker.withRegistry(registry) {
                           dockerImage.push()
                       } 
                    }
                }
        }
    }
    }
}

但我已经尝试了几次并出现此错误

创建的Pod:kubernetes crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。 [警告][crpcc-jenkins-prodslaves/jenkins-kaniko-hrfk9-j06mk][FailedScheduling] 0/33 个节点可用:33 个节点与节点选择器不匹配。

有什么解决办法吗?

解决方法

你能试试下面的脚本吗:

def label = "goweb-1.$BUILD_NUMBER-pipeline"
 
podTemplate(label: label,containers: [
 containerTemplate(name: 'kaniko',image: 'gcr.io/kaniko-project/executor:debug',command: '/busybox/cat',ttyEnabled: true)
],volumes: [
   secretVolume(mountPath: '/root/.docker/',secretName: 'dockercred')
]) {
 node(label) {
   stage('Stage 1: Build with Kaniko') {
     container('kaniko') {
       sh '/kaniko/executor --context=git://github.com/repository/project.git \
               --destination=docker.io/repository/image:tag \
               --insecure \
               --skip-tls-verify  \
               -v=debug'
     }
   }
 }
}

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

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?