Geek Institut

Formation pratique, professionnelle et orientée déploiement réel.

Atelier DevOps — Séance en cours

Docker & Jenkins

Ce site a été conteneurisé avec Docker et déployé automatiquement via un pipeline Jenkins déclenché par un simple git push.

Déployé par
Divine
Déployé automatiquement · Docker + Jenkins · CI/CD

Ce que cet atelier nous a appris

Aujourd'hui, nous avons mis en place une chaîne de déploiement continu complète : du poste du développeur jusqu'au serveur de production, sans aucune intervention manuelle. Chaque git push suffit à tout déclencher.

Image Docker

Un modèle figé contenant l'application et tout son environnement. Construit depuis le Dockerfile.

Conteneur Docker

Une instance en cours d'exécution de l'image. Isolé, léger, redémarre automatiquement avec --restart always.

Dockerfile

Le fichier de recette. FROM nginx:alpine, COPY, EXPOSE 80, CMD — quatre lignes suffisent.

Port mapping

Le conteneur est isolé. Le flag -p 8101:80 le rend accessible depuis l'extérieur.

Pipeline Jenkins

Le Jenkinsfile orchestre cinq stages qui s'enchaînent à chaque push.

📥
Checkout
Clone ou pull le dépôt
🔨
Build
docker build
🗑️
Stop/Rm
Supprime l'ancien
🚀
Run
docker run -d -p
Verify
Vérifie les logs
Docker Jenkins nginx:alpine CI/CD

Notre Dockerfile

Quatre lignes suffisent pour conteneuriser ce site :

FROM nginx:alpine

COPY index.html /usr/share/nginx/html/index.html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
daemon off; maintient Nginx en premier plan. Sans cette option, le conteneur s'arrêterait immédiatement au démarrage.

Ton devoir — une seule consigne

  • Remplace [Remplace par ton prénom] dans ce fichier par ton vrai prénom.
  • Pousse le fichier modifié sur ton dépôt GitHub avec un git push.
  • Vérifie que le pipeline Jenkins se déclenche automatiquement.
  • Confirme que ton prénom est visible en ligne sur le serveur.
Le but n'est pas de changer le design, mais de prouver que la chaîne fonctionne : git push → webhook → Jenkins → Docker → site mis à jour en production.

Pourquoi Docker est incontournable en DevOps

Avant Docker, le problème classique était : « ça marche sur ma machine ». Docker résout cela en empaquetant l'application avec tout son environnement. Peu importe le serveur, le comportement est identique.

Reproductibilité

L'environnement d'exécution est identique du poste du développeur au serveur de production.

Isolation

Chaque application tourne dans son propre conteneur sans interférer avec les autres.

Rollback instantané

Les images Docker sont versionnées. Revenir à une version précédente prend quelques secondes.

Scalabilité

Lancer plusieurs instances d'un conteneur se fait en une seule commande. Base de Kubernetes.