2016-09-24 3 views
4

Я хочу настроить мастер Jenkins на сервере A и подчиненный на сервере B с использованием Docker.Запуск мастера Jenkins и раба с помощью Docker

Оба сервера являются виртуальными машинами, предназначенными для Дженкинса.

В настоящее время я начал Docker контейнер на сервере для мастера, на основе официального Jenkins Docker изображения. Но какое изображение докера нужно использовать для Jenkins slave?

+0

Я бы посоветовал вам сначала создать работягу дженкинсов без части Докера, чтобы вы лучше поняли, что на самом деле раб Дженкинса. Затем вы можете создать контейнер для запуска подчиненного устройства. – hyde

ответ

4

Это действительно зависит от среды и инструментов, которые вам нужны в вашей среде сборки. Например, если вы создаете проект C, вам понадобится изображение, содержащее компилятор C и, возможно, make, если вы используете Makefiles. Если вы создадите проект Java, вам понадобится JDK с компилятором Java и, возможно, Ant/Maven/Gradle, если вы будете использовать их как часть своей сборки.

Вы можете использовать evarga/jenkins-slave в качестве отправной точки для своего ведомого устройства.

Это изображение уже содержит JDK. Если вам просто нужно JDK и Maven на сборки в раба, вы можете создать свой Docker изображение со следующим Dockerfile:

FROM evarga/jenkins-slave 

run apt-get install maven 

Использование Docker изображений для сборки рабов на самом деле хорошая идея. Некоторые из причин появляются Templating Jenkins Build Environments with Docker Containers:

Docker зарекомендовал себя как популярный и удобный способ самозагрузки обособленных и воспроизводимые условий, что позволяет Docker контейнеров быть наиболее обслуживаемыми ведомых среды. инструменты Docker контейнеров и другие конфигурации могут быть под управлением версиями в определении окружающей среды называется Dockerfile и Dockerfiles позволяет несколько одинаковых контейнеров могут быть созданы быстро с помощью этого определение или персонализированных ответвления, которые будут созданы с помощью , что Изображение Dockerfile в качестве базы.

+0

Итак, в основном мне нужно простое изображение докеры с установленными только JDK и Maven (поскольку мой исходный код использует его для сборки), а ssh разрешил использовать его как подчиненный Jenkins –

+0

@ IsmarSlomic - Да. Поскольку [evarga/jenkins-slave] (https://registry.hub.docker.com/u/evarga/jenkins-slave/dockerfile) уже содержит JDK, вы можете создать на нем базу изображений для конфигурации JDK и Jenkins и добавьте Maven. См. Образец 'Dockerfile' в моем отредактированном ответе. – Alon

+0

Спасибо! Кстати, jenkins может установить maven (разные версии) и Java для вас через опции Global Tools в конфигурациях. Что такое рекомендуемый подход, позволяя Jenkins устанавливать maven и java через GUI или настраивать это в контейнере докеров через Dockerfile? –

2

Предлагаю вам попробовать использовать динамические эфемерные узлы докеров, вместо того, чтобы вручную создавать узлы и подключаться к ним через ssh. Взгляните на https://engineering.riotgames.com/news/putting-jenkins-docker-container, это очень мощно, и я думаю, что это один из убийств для Docker.

Смежные вопросы