Ошибка при отправке образа сборки kaniko в реестр контейнеров Azure из Groovy-конвейера jenkins - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть сценарий, я запускаю свой кластер Jenkins в K8s в Minikube.Я запускаю скрипт groovy в моем конвейере Jenkins, который создает образ докера с помощью Kaniko (который создает образ докера без демона докера) и отправляет его в реестр контейнеров Azure.Я создал секрет для аутентификации в Azure.

Но когда я нажимаю на изображение - я получаю сообщение об ошибке

 " [36mINFO[0m[0004] Taking snapshot of files...                  
[36mINFO[0m[0004] ENTRYPOINT ["jenkins-slave"]                 
error pushing image: failed to push to destination Testimage.azurecr.io/test:latest: unexpected end of JSON input
[Pipeline] }"

Мой скрипт

My groovy script -- 

def label = "kaniko-${UUID.randomUUID().toString()}"

podTemplate(name: 'kaniko', label: label, yaml: """
kind: Pod
metadata:
  name: kaniko
spec:
  containers:
  - name: kaniko
    image: gcr.io/kaniko-project/executor:debug
    imagePullPolicy: Always
    command:
    - /busybox/cat
    tty: true
    volumeMounts:
      - name: jenkins-pv
        mountPath: /root
  volumes:
  - name: jenkins-pv
    projected:
      sources:
      - secret:
          name: pass
          items:
            - key: .dockerconfigjson
              path: .docker/config.json
"""
  ) {

  node(label) {
    stage('Build with Kaniko') {
      git 'https://github.com/jenkinsci/docker-jnlp-slave.git'
      container(name: 'kaniko', shell: '/busybox/sh') {
          sh '''#!/busybox/sh
          /kaniko/executor -f `pwd`/Dockerfile -c `pwd` --skip-tls-verify --destination=testimage.azurecr.io/test:latest
          '''
      }
    }
  }
}

Не могли бы вы помочь, как преодолеть ошибку?А также:

  • Как узнать имя сборки образа, созданной kaiko?
  • Я просто нажимаю как - registry.acr.io/test: последнее, возможно, это неправильное имя изображения, поэтому я получаю ошибку вывода JSON?
...