Dans le monde du développement logiciel, l’automatisation est devenue une nécessité pour maintenir l’efficacité et la qualité. Jenkins est l’un des outils d’intégration continue les plus populaires, largement utilisé pour automatiser diverses tâches de développement et de déploiement. Docker, quant à lui, permet de containeriser des applications pour assurer leur portabilité et leur cohérence à travers différents environnements. Cet article va vous guider à travers les étapes nécessaires pour mettre en place Jenkins sur Docker, une combinaison puissante pour améliorer vos processus de développement.
Pré-requis
Avant de commencer, assurez-vous d’avoir les éléments suivants installés sur votre machine:
- Docker: Vous pouvez télécharger et installer Docker depuis le site officiel.
- Docker Compose (facultatif mais recommandé): Il simplifie la gestion des applications multi-conteneurs.
Étape 1 : Installation de Docker
Pour les utilisateurs de Windows et macOS, vous pouvez installer Docker Desktop. Pour Linux, suivez ces étapes :
bash
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
« deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable » | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Vérifiez que Docker est correctement installé :
bash
docker --version
Étape 2 : Création d’un Dockerfile pour Jenkins
Un Dockerfile est un fichier texte contenant les instructions pour assembler une image Docker. Voici un exemple de Dockerfile pour Jenkins :
dockerfile
# Utiliser l'image officielle de Jenkins LTS
FROM jenkins/jenkins:lts
# Exposer le port 8080 pour JenkinsEXPOSE 8080
# Exposer le port 50000 pour les agents Jenkins
EXPOSE 50000
Étape 3 : Création d’un fichier docker-compose.yml
Docker Compose vous permet de définir et de gérer des applications multi-conteneurs. Voici un exemple de fichier docker-compose.yml
pour Jenkins :
yaml
version: '3.8'
services:
jenkins:
image: jenkins/jenkins:lts
ports:
– « 8080:8080 »
– « 50000:50000 »
volumes:
– jenkins_home:/var/jenkins_home
volumes:
jenkins_home:
Étape 4 : Lancer Jenkins avec Docker Compose
Exécutez les commandes suivantes pour démarrer Jenkins :
bash
docker-compose up -d
Vérifiez que Jenkins fonctionne en accédant à http://localhost:8080
dans votre navigateur.
Étape 5 : Configuration initiale de Jenkins
- Débloquer Jenkins: Lors de la première connexion, vous devrez entrer un mot de passe administrateur temporaire. Récupérez-le avec la commande suivante :
bash
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
- Installer les plugins recommandés: Suivez l’assistant de configuration pour installer les plugins recommandés. Cela inclut des plugins pour Git, Maven, Gradle, et d’autres outils populaires.
- Créer le premier utilisateur administrateur: Suivez les étapes pour créer un utilisateur administrateur.
Étape 6 : Configuration des agents Jenkins
Jenkins fonctionne mieux avec des agents distribués pour répartir les charges de travail. Voici comment configurer un agent Docker :
- Créer une image d’agent Jenkins : Créez un Dockerfile pour l’agent Jenkins :
dockerfile
FROM jenkins/agent
USER root
RUN apt-get update && apt-get install -y maven
USER jenkins
- Construire et exécuter l’image d’agent :
bash
docker build -t jenkins-agent .
docker run -d --name jenkins-agent jenkins-agent
- Configurer l’agent dans Jenkins : Dans l’interface de Jenkins, allez dans
Gérer Jenkins
>Gérer les nœuds et les nuages
>Nouveau nœud
. Configurez les détails de l’agent en utilisant l’adresse IP ou le nom de conteneur approprié.
Étape 7 : Configuration des Jobs Jenkins
- Créer un nouveau job : Allez dans l’interface de Jenkins et cliquez sur
Nouveau Item
. Donnez un nom au job et sélectionnezPipeline
. - Configurer le job : Dans la configuration du job, définissez le pipeline en utilisant le langage de script Jenkinsfile.
Exemple de Jenkinsfile pour un projet Maven :
groovy
pipeline {
agent any
stages {stage(‘Build’) {
steps {
sh ‘mvn clean install’
}
}
stage(‘Test’) {
steps {
sh ‘mvn test’
}
}
stage(‘Deploy’) {
steps {
sh ‘mvn deploy’
}
}
}
}
Conclusion
Mettre en place Jenkins sur Docker offre une flexibilité et une portabilité exceptionnelles pour les développeurs et les équipes DevOps. En suivant les étapes décrites dans cet article, vous pouvez rapidement configurer un environnement d’intégration continue robuste et évolutif. Jenkins et Docker, combinés, permettent de simplifier le déploiement et la gestion des applications, tout en assurant une grande fiabilité et cohérence à travers différents environnements.