Bonjour, ce billet va vous expliquer comment installer et utiliser Markdown Lint dans un conteneur Docker. Veuillez consulter mon précédent billet pour mieux comprendre Docker.
Avant de commencer
Assurez-vous d'avoir consulté mon précédent article sur Docker, car je vais y faire référence et il sera plus facile de suivre cet article :)
Dans ce cas, nous allons utiliser un conteneur ruby pour installer notre outil mdl. Vous avez montré comment configurer un conteneur ruby dans le précédent article sur docker.
Markdown Lint
Il s'agit d'un outil pour les fichiers markdown (md) qui comprend une bibliothèque de règles pour encourager les normes et la cohérence des fichiers markdown et qui confirme si les fichiers suivent ces règles.
Container ruby
Donc, pour commencer, exécutons le conteneur ruby ! Copiez-collez la ligne suivante dans votre terminal :
docker run -tid -v /home/vagrant:/mdfiles --name ruby --entrypoint=/bin/bash ruby:latest
Ok, donc vous regardez cette ligne de commande et vous vous demandez ce que c'est que tout ça !? Eh bien, laissez-moi vous expliquer :)
Le -tid est 3 choses différentes :
-t ou --tty : Allouer un pseudo-TTY -i ou --interactive : Garde STDIN ouvert même si non attaché -d ou --detach : Mode détaché : exécuter la commande en arrière-plan Ensuite, nous faisons un -v pour volume, qui dans notre cas, est utilisé pour refléter le dossier où nous avons notre fichier .md. Cela nous permettra d'avoir "le même dossier" dans notre conteneur. Rappelez-vous que le / est la racine et ensuite nous créons un nouveau dossier dans le conteneur nommé "mdfiles".
Then we use the --name and as the name suggest it's to attibute a name to your container.
Ensuite, nous utilisons l'option --name qui, comme son nom l'indique, permet d'attribuer un nom à votre conteneur.
Nous exécutons --entrypoint /bin/bash pour laisser un bash ouvert. Cela permet au conteneur de rester ouvert (up) au lieu de se fermer juste après l'exécution. Quand vous faites un exec, il ne va pas sur bash (exec est sh et pas bash). C'est pourquoi nous devons faire tourner le conteneur en bash, pour pouvoir utiliser toutes les commandes bash.
La différence entre docker run et docker exec est que docker exec exécute une commande sur un conteneur en cours d'exécution. D'autre part, docker run crée un conteneur temporaire, exécute la commande dans celui-ci et arrête le conteneur lorsque la commande est terminée. Nous utilisons donc --entrypoint pour lancer un conteneur et le laisser ouvert jusqu'à ce que nous décidions de l'arrêter.
Vous pouvez également donner une commande à votre conteneur directement en faisant cela : Note : Si vous avez un conteneur windows vous utilisez powershell au lieu de bash
docker exec ruby bash -c "ip add"
Nous exécutons le terminal bash avec la commande (-c) "ip add" Cela vous montrera l'adresse IP de votre conteneur ruby.
Et maintenant nous pouvons installer l'outil mdl :
docker exec ruby bash -c "gem install mdl"
Super, tout est beau et propre ! Maintenant, prenez un fichier .md de votre choix, et lancez mdl :
docker exec ruby bash -c "mdl /mdfiles/myfile.md"
Cela fera tourner l'outil mdl à travers votre fichier md et vous informera du nombre d'erreurs que vous avez, les lignes qu'elles sont et quelle était la règle qui n'a pas été respectée.