Не рекомендуется использовать Docker с Дженкинсом. Это тоже неплохая практика. Отношения между Дженкинсом и Докером не определены таким образом, что наличие Докера хорошо или плохо.
Jenkins - это Сервер Непрерывной Интеграции, который является причудливым способом сказать "сервис, который создает вещи в разное время согласно предопределенным правилам"
Если ваш конечный результат представляет собой изображение докера, которое нужно распространить, Дженкинс должен вызвать вашу команду docker build
, собрать выходные данные и сообщить об успехе / неудаче команды docker build
.
Если ваш конечный результат не является образом докера, у вас есть Jenkins, который вызывает вашу команду сборки без докера, собирает выходные данные и сообщает об успехе / неудаче сборки без докера.
Способ запуска сборки зависит от того, как вы будете собирать продукт. Make-файлы запускаются с make
, Apache Ant с ant
, Apache Maven с mvn package
, докер с docker build
и так далее. С точки зрения Дженкина, это не имеет значения, если вы предоставите полный набор правил для запуска сборки, сбора результатов и отчета об успехе или неудаче.
Теперь о плагине Docker для Дженкинса. Как сказал @yamenk, Дженкинс использует подчиненные сборки для выполнения сборки. Этот плагин будет запускать сборку ведомого в контейнере Docker. Объект, встроенный в этот контейнер, может быть или не быть изображением докера.
Наконец, запуск Jenkins внутри док-контейнера просто означает, что вам нужно привязать ваш докерский Jenkins к внешнему миру, как указывает @yamenk, иначе у вас будут проблемы с запуском сборок.