Как использовать docker в скриптовом конвейере jenkins на RHEL7

0

Цель состоит в том, чтобы запустить образ докера из скриптового конвейера jenkins.

Узел, выполняющий докер, является машиной RHEL7.

На RHEL7 обычные пользователи не могут выполнять команды Docker без sudo, см. Этот пост Дэна Уолша .

Sudo был настроен, и я настроил псевдоним в соответствии с рекомендациями. Однако Дженкинс не читает профиль Bash.

Затем я удалил псевдоним и создал скрипт с именем docker и поместил его в каталог, который теперь добавляю в PATH.

Теперь конвейер может выполнить docker, но в конце конвейера он пытается вызвать / usr / bin / docker-current, и по какой-то причине он не использует скрипт. Несмотря на то, что docker-current в шаге sh в конвейере показывает, что он нашел скрипт.

Все это похоже на то, что я что-то упустил. Как я могу настроить jenkins / docker, чтобы jenkins мог правильно запускать образы docker для выполнения шагов в моем конвейере?

Брэм
источник

Ответы:

0

Вместо того, чтобы давать пользователю Jenkins sudo и пытаться обернуть вызовы docker с помощью sudo, добавьте пользователя Jenkins в группу docker:

Если вы не хотите вводить команду docker с помощью sudo, создайте группу Unix с именем docker и добавьте в нее пользователей. Когда запускается демон Docker, он создает сокет Unix, доступный членам группы Docker.

Источник из официальной документации с более подробными инструкциями по предоставлению некорневым пользователям доступа к демону docker.

Эти инструкции являются тем, что я следовал, чтобы дать доступ к докеру Jenkins на RHEL 7 через скриптовые конвейеры, и, похоже, он работает нормально.

jayhendren
источник
Как объясняет Дэн Уолш в посте, на который я ссылаюсь, это создает угрозу безопасности. Моя цель - позволить jenkins запускать док-контейнеры, не подвергая риску безопасности.
Брэм
Предоставление пользователю Jenkins sudo также создает риски безопасности. В какой-то момент вы должны согласиться с тем, что разрешение агенту запускать исполняемый файл setuid будет открывать поверхности атаки независимо от того, как вы это делаете.
Джейхендрен