Как запустить конвейер Jenkins в контейнере, основанном на файле Docker? - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь запустить конвейер внутри контейнера на основе файла Docker, который я сохранил в моем SCM.

Здесь, под началом моего конвейера:

pipeline {
    agent { 
        dockerfile {
            dir '002_CICD'
        }

    }
....

Когда я пытаюсь запустить конвейер, у меня появляется следующая ошибка:

   + docker build -t 66dae53280bc29614c69b505e48424c25e689b91 -f 002_CICD/Dockerfile 002_CICD
/var/jenkins_home/workspace/AMP_app_docker_pipe@tmp/durable-cbf3977b/script.sh: 1:
 /var/jenkins_home/workspace/AMP_app_docker_pipe@tmp/durable-cbf3977b/script.sh: docker: not found

Для запуска docker контейнер Я установил следующие плагины Jenkins:

  1. Docker плагин
  2. docker - шаг сборки
  3. Docker конвейер
  4. Docker общие плагины
  5. Docker API-плагин

Я также включил docker API на удаленном сервере, и соединения выглядят нормально.

Чего мне не хватает? Большое спасибо

1 Ответ

1 голос
/ 26 апреля 2020

То, что вы пытаетесь реализовать, - это docker в docker настройке (довольно часто используется для процесса CI)

Поскольку ваш jenkins работает внутри контейнера, вам нужно установить docker (cli / client) в вашем Dockerfile, следовательно, ошибка docker не найдена.

Этот docker клиент будет использовать механизм docker хоста для выполнения всех операций

Относительно ошибки

Невозможно подключиться к демону Docker в unix: ///var/run/docker.sock

This может произойти, если пользователь jenkins не имеет доступа к хосту /var/run/docker.sock. Проверьте разрешения этого файла на хосте и соответствующие разрешения пользователя, с которым работает jenkins

...