web-dev-qa-db-fra.com

Exécutez Jenkins maître et esclave avec Docker

Je veux installer Jenkins maître sur le serveurAet esclave sur le serveurBavec l’utilisation de Docker. 

Les deux serveurs sont des machines virtuelles dédiées à Jenkins. 

Actuellement, j'ai lancé le conteneur Docker sur le serveurApour master , basé sur l'image officielle Jenkins docker. Mais quelle image de menu fixe dois-je utiliser pour Jenkins slave ?

6
Ismar Slomic

Cela dépend en fait de l'environnement et des outils dont vous avez besoin dans votre environnement de construction. Par exemple, si vous construisez un projet C, vous aurez besoin d'une image contenant un compilateur C et éventuellement make si vous utilisez Makefiles. Si vous construisez un projet Java, vous aurez besoin d'un JDK avec un compilateur Java et éventuellement Ant/Maven/Gradle si vous les utilisez dans le cadre de votre construction.

Vous pouvez utiliser le evarga/jenkins-slave comme un bon point de départ pour votre build esclave.

Cette image contient déjà JDK. Si vous avez simplement besoin de JDK et de Maven sur votre build esclave, vous pouvez construire votre image Docker avec la variable Dockerfile suivante:

FROM evarga/jenkins-slave

run apt-get install maven

Utiliser des images Docker pour construire des esclaves est en fait une bonne idée. Certaines des raisons apparaissent dans Templating Jenkins Build Environments avec Docker Containers :

Docker s’est imposé comme un moyen populaire et pratique d’amorcer des environnements isolés et reproductibles, ce qui permet aux conteneurs Docker D’être les environnements esclaves les plus faciles à gérer. L'outillage et les autres configurations des conteneurs Docker Peuvent être contrôlés par la version Dans une définition d'environnement appelée Dockerfile. Dockerfiles Permet de créer rapidement plusieurs conteneurs identiques à l'aide de ce définition ou pour créer des ramifications plus personnalisées en utilisant cette image de Dockerfile comme base.

5
Alon

Je vous suggère d'essayer d'utiliser des nœuds dockers dynamiques | éphémères, au lieu de créer manuellement des nœuds et de vous y connecter via ssh. Jetez un coup d’œil à https://engineering.riotgames.com/news/putting-jenkins-docker-container , c’est très puissant et je pense que c’est l’un des cas de réussite pour Docker.

2
ufoolme