Openshift докер в трубопроводе Дженкинс - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь использовать конвейерную сборку в Openshift 3.9, где мне нужно использовать интерфейс командной строки докера. Я не могу понять, как сделать команду docker доступной в моем конвейере.

Я пробовал приведенный ниже код с декларативным конвейером, но получаю «docker: команда не найдена»

pipeline {
            agent {
                docker { image 'node:7-alpine' }
            }
            stages {
                stage('Test') {
                    steps {
                        sh 'node --version'
                    }
                }
            }
          }

Код был скопирован отсюда:

https://jenkins.io/doc/book/pipeline/docker/

Я также попробовал его скриптовую версию:

node {
    /* Requires the Docker Pipeline plugin to be installed */
    docker.image('node:7-alpine').inside {
        stage('Test') {
            sh 'node --version'
        }
    }
}

Но появляется та же ошибка: «docker: команда не найдена»

Установлен подключаемый модуль Docker Pipeline (версия: 1.17). Версия Openshift: 3.9

Есть предложения? Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Openshift предоставляет Jenkins ведомые изображения трех типов,

  1. Maven поддерживается
  2. Поддерживаются Nodejs
  3. Базовое изображение

Ни у одного из них не установлен докер, и, поверьте мне, это не очень хорошая идея .

В Openshift Jenkins запускается как Pod (запускает контейнер докера внутри), и вы хотите получить докер внутри контейнера. Так что если вы хотите сделать доступным докер,

  1. Вы должны создать изображение подчиненного Дженкинса, расширив базовое изображение и добавив в него докер
  2. Переместить его в реестр
  3. Начните использовать его!

Но, делайте выше, если вы действительно этого хотите, просто слово предостережения;)

0 голосов
/ 16 января 2019

Похоже, что на узле, где вы запускаете конвейер, не установлено docker. Вы должны установить это сначала. Вы не можете использовать команду docker сразу после установки Docker Plugin без предварительной настройки:

По умолчанию плагин Docker Pipeline будет взаимодействовать с локальным демоном Docker, доступ к которому обычно осуществляется через /var/run/docker.sock.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...