在Jenkins Slave中运行Kaniko

时间:2018-12-10 19:03:19

标签: jenkins pipeline devops kaniko

我想以詹金斯人的身分经营kaniko。我的管道正在docker插件上运行,如何使用kaniko设置gcr凭据。

我想将GCR凭证上传到Jenkins Master服务器。

我的管道特性如下所示:

#include

2 个答案:

答案 0 :(得分:0)

我正在使用Kaniko制作图像并推送到私人仓库。我的Kaniko码头工人映像使用Kubernetes pull-secret进行身份验证,但是您应该能够使用以下代码:

stage('Kaniko') {
        environment {
            ARTIFACTORY_CREDS = credentials('your-credentials')
        }
        steps{
            sh "echo ********** EXAMPLE APP **********"
            container(name: 'kaniko', shell: '/busybox/sh') {
              withEnv(['PATH+EXTRA=/busybox']) {
                  sh '''#!/busybox/sh
                  /kaniko/executor --context `pwd` --cleanup --dockerfile=your/Dockerfile --build-arg ARTIFACTORY_USER=$ARTIFACTORY_CREDS_USR --build-arg ARTIFACTORY_PASS=$ARTIFACTORY_CREDS_PSW --destination=your.docker.repo/team/image:tag
                  '''
              }
            }
        }
}

答案 1 :(得分:0)

我运行封装在一个 pod 中的整个管道,这里我如何使用 Kaniko:

pipeline {
  agent {
    kubernetes {
      yaml """
apiVersion: v1
kind: Pod
metadata:
  labels:
    jenkins: worker
spec:
  containers:
  - name: kaniko
    image: gcr.io/kaniko-project/executor:debug
    command: ["/busybox/cat"]
    tty: true
    volumeMounts:
      - name: dockercred
        mountPath: /root/.docker/
  volumes:
  - name: dockercred
    secret:
      secretName: dockercred
"""
    }
  }
  stages {
    stage('Stage 1: Build with Kaniko') {
      steps {
        container('kaniko') {
          sh '/kaniko/executor --context=git://github.com/repository/project.git \
                  --destination=repository/image:tag \
                  --insecure \
                  --skip-tls-verify  \
                  -v=debug'
        }
      }
    }  
  }
}