Créer des images Docker avec Jenkins
Configurez des tâches Jenkins pour construire et envoyer automatiquement des images Docker vers un registre lors des modifications du code.
Créer des images Docker avec Jenkins est une leçon Docker & DevOps Fundamentals gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Docker & DevOps Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.
Automatiser les compilations Docker
La création manuelle d'images Docker peut être lente, incohérente et sujette aux erreurs. C'est particulièrement vrai dans un environnement d'équipe ou lorsque le code est modifié fréquemment.
L'automatisation est essentielle pour assurer une livraison logicielle fiable et efficace. Dans cette leçon, nous allons apprendre à intégrer Jenkins à Docker pour automatiser la création et l'envoi d'images.

Prérequis pour Jenkins et Docker
Pour compiler des images Docker, Jenkins doit pouvoir interagir avec un démon Docker. Cela signifie que le client Docker doit être installé sur la machine ou l'agent sur lequel votre travail Jenkins sera exécuté.
Vous aurez également besoin de :
- Un serveur Jenkins en fonctionnement (issu de la leçon 1)
- Un accès à un registre Docker (par exemple, Docker Hub)
- Une application exemple et son fichier Dockerfile
Installer Docker sur l’hôte Jenkins
Pour permettre à Jenkins d’exécuter des commandes Docker, vérifiez que Docker est installé et configuré sur le serveur ou l’agent Jenkins. L’utilisateur Jenkins doit souvent disposer des autorisations nécessaires pour interagir avec le démon Docker.
Voici comment vous pourriez le configurer sur un système Linux :
sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkinsSécuriser les identifiants du registre
Pour envoyer des images vers un registre Docker, Jenkins a besoin d’identifiants. Il est essentiel de les stocker de manière sécurisée, et non directement dans votre Jenkinsfile ou dans la configuration du travail.
La fonctionnalité intégrée Credentials de Jenkins est idéale pour cela :
- Accédez à Manage Jenkins > Manage Credentials.
- Ajoutez un nouvel identifiant Username with password pour votre registre Docker.
- Attribuez-lui un ID descriptif (par exemple,
dockerhub-credentials) afin de pouvoir le référencer ultérieurement.
Exemple d’application Flask
Utilisons une application Python Flask très simple. Nous la placerons dans un fichier nommé app.py. Elle affichera un simple message « Hello ».
Nous aurons également besoin d’un fichier requirements.txt pour préciser les dépendances Python.
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello from CoddyKit!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
# requirements.txt
Flask==2.0.2Créer le Dockerfile
Ensuite, nous définirons notre image Docker à l’aide d’un Dockerfile. Ce fichier indiquera à Docker comment construire l’image de notre application.
Placez ce Dockerfile dans le même répertoire que vos fichiers app.py et requirements.txt.
# Dockerfile
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
EXPOSE 5000
CMD ["python", "app.py"]Travail Jenkins : étape de compilation
Configurons maintenant un travail Jenkins de type Freestyle. Dans la section Build Steps, ajoutez une étape Execute shell. Cette commande construira votre image Docker.
N’oubliez pas de remplacer yourusername par votre nom d’utilisateur Docker Hub ou le chemin de votre registre.
# In Jenkins 'Execute shell' build step:
docker build -t yourusername/coddykit-app:latest .Travail Jenkins : étape de connexion et d’envoi
Après avoir construit l’image, nous devons l’envoyer vers notre registre Docker. Cela nécessite généralement de s’y connecter. Nous utiliserons les identifiants enregistrés précédemment.
Ajoutez une autre étape Execute shell. Jenkins injectera les identifiants sous forme de variables d’environnement (par exemple, DOCKER_USER et DOCKER_PASS) si la configuration est correcte.
# In Jenkins 'Execute shell' build step:
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
docker push yourusername/coddykit-app:latestAutomatiser les déclencheurs de compilation
La puissance de l’intégration et de la livraison continues repose sur l’automatisation. Jenkins peut déclencher automatiquement ces travaux de compilation et d’envoi en fonction de différents événements :
- Interrogation du SCM : Jenkins vérifie régulièrement si de nouveaux dépôts ont été ajoutés à votre dépôt Git.
- Webhooks : votre fournisseur Git (GitHub, GitLab, Bitbucket) envoie une notification à Jenkins chaque fois que du code est envoyé.
- Projets en amont : le déclenchement a lieu lorsqu’un autre travail Jenkins s’est terminé avec succès.
Tester le travail Jenkins
Après avoir configuré les étapes de compilation et les déclencheurs, enregistrez votre travail Jenkins. Vous pouvez déclencher manuellement une compilation pour le tester. Surveillez la sortie de la console pour vérifier que l’image Docker est bien construite et envoyée.
Une exécution réussie signifie que votre chaîne d’intégration continue peut désormais produire et stocker automatiquement de nouvelles images Docker chaque fois que votre code change !
Vérification rapide
Vous avez configuré un travail Jenkins pour construire et envoyer une image Docker. Votre dépôt Git contient de nouvelles modifications de code.
Récapitulatif : compilation et envoi
Excellent travail ! Dans cette leçon, vous avez appris à :
- Préparer votre environnement Jenkins pour interagir avec Docker.
- Gérer de manière sécurisée les identifiants du registre Docker dans Jenkins.
- Configurer un travail Jenkins pour construire une image Docker à l’aide d’un Dockerfile.
- Envoyer l’image nouvellement construite vers un registre Docker.
- Comprendre différentes façons de déclencher des compilations automatisées.
L’automatisation de ces étapes est un élément essentiel de l’intégration continue et prépare le terrain pour la livraison continue !
Questions Fréquemment Posées
La leçon « Créer des images Docker avec Jenkins » est-elle gratuite ?
Oui — le texte complet de « Créer des images Docker avec Jenkins » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Docker & DevOps Fundamentals, passe à CoddyKit PRO. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Créer des images Docker avec Jenkins » ?
Configurez des tâches Jenkins pour construire et envoyer automatiquement des images Docker vers un registre lors des modifications du code. Tu pratiques Docker & DevOps Fundamentals avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Docker & DevOps Fundamentals ?
Aucune expérience préalable n'est requise. Docker & DevOps Fundamentals sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Créer des images Docker avec Jenkins » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Docker & DevOps Fundamentals ?
Oui. Chaque leçon Docker & DevOps Fundamentals inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Introduction à Jenkins
- Créer des images Docker avec Jenkins
- Déploiement automatisé avec Jenkins
- Pipeline Jenkins en tant que code avec Jenkinsfile