Проблема с использованием Kaniko для создания контейнеров из совместно используемой библиотеки Kubernetes CloudBees Jenkins - PullRequest
1 голос
/ 10 мая 2019

Я пытаюсь собрать контейнеры, используя разделяемую библиотеку Jenkins, которая вызывает Kaniko. Jenkins - это ядро ​​CloudBees, работающее в кластере Kubernetes.

Я предпочитаю пытаться использовать шаблоны pod для создания контейнеров, но я могу прибегнуть к выделенной виртуальной машине, если потребуется (но мой клиент не будет счастлив).

Проблема : запуск Kaniko из простого Jenkinsfile конвейера работает нормально, но я получаю ошибки при попытке запустить его из shared-library.

Фрагмент моей общей библиотеки:

docker.image('kaniko').inside('-u root --privileged') {
       sh '''#!/busybox/sh
            /kaniko/executor --context `pwd` --destination docker.artifactory.company.com/docker-local/hello-kaniko:latest
            '''
    }

Ошибка, которую я получаю (отрезал):

.
.
.
Building: default
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] sh
+ docker inspect -f . kaniko
/home/jenkins/workspace/cloud-services@tmp/durable-28d8debd/script.sh: line 1: docker: not found
[Pipeline] sh
+ docker pull kaniko
/home/jenkins/workspace/cloud-services@tmp/durable-dc065568/script.sh: line 1: docker: not found
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 127
Finished: FAILURE

Кто-нибудь еще мог запустить Kaniko из общей библиотеки в Дженкинсе в Кубернетесе?

1 Ответ

0 голосов
/ 11 июля 2019

У меня была похожая проблема в контейнере kaniko, мне нужно было добавить PATH в среду:

    withEnv(['PATH+EXTRA=/busybox:/kaniko']) {
      sh '''#!/busybox/sh
      /kaniko/executor (....)
    }
...