Formation Docker
Conteneurisez MonTour, l’application Next.js et Supabase de la formation Coder avec l’IA : 80 % de pratique, Dockerfile multi-étapes, Docker Compose, GitLab CI, images scannées dès le premier jour et déploiement sur un VPS avec Caddy, avec des prompts reproductibles et un module sur les agents IA.
Programme
- Module 0 · Démarrer vite et sereinement
- 00 MonTour dans un conteneur : le projet et la méthode Vous allez mettre MonTour dans des conteneurs, de votre poste jusqu’à un VPS en HTTPS. Ce chapitre fixe le projet, la méthode et le dépôt de départ. Gratuit
- 01 Installer Docker et vérifier son poste en 20 minutes Un poste prêt en 20 minutes : Docker Desktop ou Docker Engine, Compose v2, un premier conteneur visible dans le navigateur et les bons réflexes de sécurité. Gratuit
- 02 Images, conteneurs et volumes : le modèle mental en 30 minutes Image, conteneur, volume et réseau : les quatre objets de Docker, manipulés avec une vraie base PostgreSQL dont les données survivent au conteneur. Gratuit
- Module 1 · Une image propre dès le premier jour
- 03 Premier Dockerfile pour MonTour, généré par l’IA et relu ligne par ligne L’IA écrit un premier Dockerfile, vous le relisez instruction par instruction : FROM, WORKDIR, COPY, RUN, EXPOSE et CMD n’auront plus de secret.
- 04 Build multi-étapes et sortie standalone : de 1 Go à 150 Mo Une étape pour construire, une pour exécuter : avec la sortie standalone de Next.js, l’image de MonTour perd 85 % de son poids.
- 05 Cache de build, .dockerignore et builds reproductibles Un build qui reprend en 10 secondes au lieu de 3 minutes : l’ordre des instructions, le cache BuildKit et un .dockerignore complet.
- 06 Sécurité de l’image : utilisateur non root, image minimale et scan Trivy Une image qui tourne en root avec 200 vulnérabilités connues n’a rien à faire en production. Vous corrigez les trois causes principales.
- Module 2 · L’environnement local avec Docker Compose
- 07 Docker Compose : MonTour et ses services en une commande Un fichier compose.yaml décrit MonTour, ses services et leurs liens. Toute l’équipe lance le même environnement avec docker compose up.
- 08 Supabase en local avec Docker : ce que fait vraiment supabase start Derrière supabase start, une dizaine de conteneurs : PostgreSQL, Auth, Realtime, Storage. Vous les observez et les reliez à MonTour.
- 09 Variables d’environnement et secrets : ce qui entre dans l’image, ce qui n’y entre jamais Les variables NEXT_PUBLIC_ sont gravées au build, les autres arrivent au démarrage. Confondre les deux, c’est publier un secret.
- 10 Healthchecks, dépendances et redémarrages Un conteneur démarré n’est pas un conteneur prêt. Healthchecks, depends_on et politique de redémarrage rendent l’environnement fiable.
- 11 Développer dans un conteneur : hot reload et Dev Containers Le même environnement pour toute l’équipe et pour vos agents IA : hot reload dans Compose, puis un Dev Container complet.
- Module 3 · Docker dans GitLab CI
- 12 Construire l’image dans GitLab CI et la pousser dans le registre À chaque push, GitLab CI construit l’image de MonTour et la publie dans le registre du projet. Plus aucune image construite à la main.
- 13 Tester dans des conteneurs : Vitest et Playwright en CI Les tests tournent dans les mêmes conteneurs qu’en local : services GitLab pour la base, image Playwright officielle pour le navigateur.
- 14 Scanner chaque image dans le pipeline : Trivy, SBOM et politique de blocage Chaque image est scannée avant publication. Une vulnérabilité critique ou un secret oublié bloque la fusion.
- 15 Versionner les images : tags, digests et retour arrière latest ne dit rien. Des tags par commit et par version, un digest pour la production, et un retour arrière en une commande.
- Module 4 · En production sur un VPS
- 16 Préparer un VPS : Docker, pare-feu et utilisateur dédié Un serveur neuf, sécurisé avant d’y déployer quoi que ce soit : accès SSH par clé, pare-feu, utilisateur dédié et Docker installé proprement.
- 17 Caddy en reverse proxy : HTTPS automatique devant MonTour Caddy obtient et renouvelle seul les certificats HTTPS, et transmet les requêtes à MonTour sur le réseau Docker.
- 18 Déploiement continu sur le VPS depuis GitLab CI Un merge sur main, et quelques minutes plus tard la nouvelle image tourne sur le VPS. Sans mot de passe dans le pipeline et avec un retour arrière prêt.
- 19 Logs, métriques et alertes des conteneurs Savoir que MonTour est tombé avant vos clients : logs bornés, métriques simples et une alerte sur votre téléphone.
- 20 Sauvegardes : exporter la base et restaurer en local Une sauvegarde qui n’a jamais été restaurée n’existe pas. Vous automatisez l’export de la base de MonTour et répétez la restauration.
- Module 5 · Durcir et optimiser
- 21 Durcir l’exécution : capabilities, lecture seule et limites de ressources Même si une faille est exploitée, le conteneur ne doit presque rien pouvoir faire : pas de privilèges, système de fichiers en lecture seule, ressources limitées.
- 22 Images multi-architecture (amd64 et arm64) avec buildx Votre Mac est en arm64, votre VPS peut-être en amd64. Une seule image multi-architecture fonctionne partout.
- 23 Diagnostiquer un conteneur qui plante : la méthode en 6 commandes Un conteneur qui redémarre en boucle, un port qui ne répond pas, une image qui ne se construit plus : une méthode fixe pour trouver la cause.
- Module 6 · Docker avec des agents IA
- 24 Agents IA et Docker : bacs à sable, permissions et connecteur MCP Un agent qui peut lancer docker peut tout casser. Vous lui donnez un bac à sable, des permissions minimales et un connecteur MCP en lecture seule.
- 25 L’agent relecteur de Dockerfile et de Compose : la grille en 10 points Un sous-agent en lecture seule applique la grille Docker en 10 points à chaque merge request et rend un rapport ligne par ligne.
- 26 Atelier : ajouter un service de notifications à MonTour, de l’ADR à la production Atelier final : un nouveau service conteneurisé de notifications, de la décision d’architecture jusqu’à la production, avec les agents et une partie écrite sans IA.
Le projet : MonTour, de votre ordinateur à votre serveur
Dans la formation Coder avec l’IA, vous avez construit MonTour, une file d’attente virtuelle par QR code. Ici, vous la mettez dans des conteneurs : une image Docker légère et sûre, un environnement local lancé en une commande, un pipeline GitLab CI qui construit, teste et scanne chaque image, puis un déploiement sur votre propre VPS derrière Caddy, en HTTPS.
Vous n’avez pas suivi la première formation ? Aucun problème : le dépôt de départ est fourni au tag docker-start. Vous partez d’une application Next.js et Supabase qui fonctionne, et vous vous concentrez sur Docker. À la fin, MonTour tourne en production sur un serveur que vous maîtrisez, avec des sauvegardes testées et un retour arrière en une commande.
80 % de pratique, une boucle répétée à chaque chapitre
Chaque chapitre commence par un objectif mesurable et se termine par une vérification. Entre les deux, vous pratiquez avec la même boucle, jusqu’à ce qu’elle devienne un réflexe :
- Objectif : une phrase, un résultat visible.
- Test : la commande qui prouve que c’est fait (
docker run,curl, healthcheck). - Prompt : une demande précise à l’IA, avec le contexte du projet.
- Relire : le Dockerfile ou le fichier Compose ligne par ligne, avec une grille.
- Commit : un petit pas historisé dans Git.
- Pipeline vert : GitLab CI construit, scanne et publie l’image.
Vite et sereinement : Git, CI/CD et sécurité dès le premier jour
- Une image propre dès le module 1 : build multi-étapes, utilisateur non root, image de base minimale, et la taille mesurée à chaque chapitre.
- GitLab CI dès le module 3 : build, tests dans des conteneurs, scan et publication dans le registre à chaque merge.
- La sécurité intégrée, pas ajoutée à la fin : aucun secret dans une image, scan Trivy bloquant, SBOM, conteneurs durcis et un « réflexe sécurité » dans chaque chapitre.
Ce que vous saurez faire
- Comprendre ce que font vraiment une image, un conteneur, un volume et un réseau.
- Écrire un Dockerfile multi-étapes léger, rapide à construire et sûr.
- Faire générer un Dockerfile ou un fichier Compose par l’IA, puis le relire avec une grille.
- Lancer toute une application et ses services en local avec Docker Compose.
- Gérer variables d’environnement et secrets sans jamais les graver dans une image.
- Construire, tester, scanner et publier des images dans GitLab CI.
- Déployer en continu sur un VPS derrière Caddy, avec HTTPS, logs et sauvegardes.
- Diagnostiquer un conteneur qui plante et revenir en arrière en une commande.
- Orchestrer des agents IA sur une infrastructure Docker avec des garde-fous.
La stack
| Couche | Outil |
|---|---|
| Conteneurs | Docker Engine · Dockerfile multi-étapes · BuildKit · buildx |
| Local | Docker Compose · Supabase CLI · Dev Containers |
| Application | MonTour : Next.js (sortie standalone) · TypeScript · Supabase |
| Livraison | Git · GitLab CI · GitLab Container Registry |
| Production | VPS Linux · Caddy (HTTPS automatique) · Docker Compose |
| Sécurité | Trivy · SBOM · utilisateur non root · capabilities · secrets GitLab |
| Exploitation | docker logs · healthchecks · Uptime Kuma · pg_dump |
Vos outils de développement
Docker Desktop sur macOS et Windows (avec WSL 2), ou Docker Engine sur Linux. Utilisez l’éditeur que vous préférez : VS Code, WebStorm (ou IntelliJ IDEA), Antigravity ou Cursor. Côté assistant : Claude Code, GitHub Copilot ou l’agent intégré de votre éditeur. Le chapitre 01 installe et vérifie tout en 20 minutes ; le chapitre 24 configure le connecteur MCP Docker et les garde-fous des agents.
Dans chaque chapitre
- Un schéma de l’architecture à construire, pour savoir où vous allez avant d’écrire le premier prompt.
- Un prompt reproductible : point de départ (tag Git), rôle, contraintes et sortie attendue. Même contexte, même résultat.
- Qualité et sécurité : la règle Docker appliquée, ce qu’elle évite, et la partie à écrire sans IA.
- L’outillage IA : connecteurs MCP et agents utiles à ce chapitre, avec les droits minimaux.
- Des liens vers les prérequis et les chapitres qui prolongent le sujet.
Module 6 : Docker avec des agents IA
Un agent qui peut lancer docker peut tout casser sur votre machine. Vous apprenez à lui donner un bac à sable, des permissions minimales et un connecteur MCP Docker en lecture seule, puis vous créez un agent relecteur de Dockerfile et de Compose. L’atelier final ajoute un service de notifications à MonTour, de l’ADR jusqu’à la production.
Prérequis
- Être à l’aise avec un terminal et Git.
- Un ordinateur sur lequel vous pouvez installer Docker (8 Go de RAM conseillés).
- Pour le module 4 : un VPS Linux à quelques euros par mois et un nom de domaine (optionnels pour suivre le reste).
- Aucune connaissance préalable de Docker, de Compose ou de GitLab CI.
Les 3 premiers chapitres sont gratuits : commencez par MonTour dans un conteneur et la méthode.
