DOCKER - 5 6 Exercice Bind Mounts

Les bind mounts sont essentiels pour le développement local : ils permettent de modifier des fichiers sur votre système hôte et de voir les changements immédiatement dans le conteneur, sans reconstruire l'image. Cet exercice vous propose d'utiliser Jekyll, un générateur de site statique, avec un bind mount pour une boucle de développement efficace.

Jekyll convertit des fichiers Markdown simples en sites HTML statiques. Normalement, vous installeriez Jekyll, Ruby et ses dépendances sur votre machine. Avec Docker, tout est dans l'image : une seule commande lance Jekyll avec tous les outils préconfiguré. Vous exécutez : docker run -v $(pwd):/site -p 4000:4000 jekyll/jekyll. Le répertoire courant (vos fichiers Markdown) est monté dans le conteneur à /site, et Jekyll expose un serveur web sur le port 4000.

Vous modifiez vos fichiers dans votre éditeur préféré (Visual Studio Code, Vim, etc.) sur votre machine, et Jekyll détecte les changements automatiquement dans le conteneur, recompile le site, et recharge le navigateur. Cette expérience de développement fluide évite l'installation locale complexe tout en gardant vos fichiers sous contrôle sur votre hôte.

C'est le bind mount en action : pont transparent entre hôte et conteneur, idéal pour les projets web, les systèmes de build et tout développement itératif où la boucle feedback doit être rapide.

En résumé

Les Bind Mounts de Docker permettent de lier les fichiers du système hôte avec ceux du conteneur, facilitant le développement local sans installation d'outils complexes. Cette leçon utilise Jekyll, un générateur de site statique, pour démontrer comment modifier des fichiers en local et les voir refléter immédiatement dans le conteneur. Docker permet au développeur de travailler avec son éditeur préféré sur l'hôte tandis qu'un conteneur surveille les changements et redémarre automatiquement le serveur web.

Points clés

  • Les Bind Mounts mappent un répertoire de l'hôte à un répertoire du conteneur, permettant des modifications en temps réel
  • Évitent d'installer des outils complexes (serveur web, observateur de fichiers, dépendances) directement sur votre système d'exploitation
  • Jekyll, utilisé par GitHub Pages, transforme du markdown en site statique HTML, illustrant un workflow pratique
  • La commande docker run avec le drapeau de bind mount mappe le répertoire courant (pwd) au répertoire /site du conteneur
  • Le conteneur Jekyll surveille les fichiers et redémarre automatiquement le serveur web à chaque modification détectée
  • Les logs Docker affichent en temps réel quand les fichiers sont modifiés et le serveur est rechargé

Questions fréquentes

Quel est l'avantage principal des Bind Mounts en développement?

Ils permettent de modifier les fichiers sur votre hôte avec votre éditeur préféré et de voir les changements refléter automatiquement dans le conteneur, sans avoir à installer les outils complexes (serveur web, observateur de fichiers, dépendances linguistiques) sur votre machine locale.

Pourquoi Jekyll est-il utilisé dans cet exemple?

Jekyll est un générateur de site statique simple qui transforme du markdown en HTML. Il illustre parfaitement comment les Bind Mounts améliorent le workflow de développement, et c'est l'outil utilisé par GitHub Pages, rendant ce pattern très courant.

Comment vérifier que le bind mount fonctionne correctement?

Ouvrez votre navigateur sur localhost pour consulter le site web généré, et consultez les logs Docker pour voir les mises à jour à chaque modification de fichier. Le conteneur doit redémarrer automatiquement le serveur à chaque changement détecté.