Skip to content

🛠️ Quelques outils à découvrir

🔬 Hadolint : Analyser vos images

Contrôler la qualité de vos Dockerfiles est important pour s'assurer de bonnes pratiques et éviter des erreurs courantes. Avec Hadolint, vous pouvez simplement analyser vos Dockerfiles pour détecter des erreurs potentielles.

Analyser un Dockerfile

Analyser les 3 Dockerfiles présentes dans le répertoire backend

Utiliser le mode Docker pour exécuter Hadolint.

Analyse terminée

Les analyses des 3 composants remontent des informations différentes.

La solution est là... ⤵️

Dans le répertoire backend:

docker run -i --rm hadolint/hadolint < Dockerfile
docker run -i --rm hadolint/hadolint < Dockerfile.openapi
docker run -i --rm hadolint/hadolint < Dockerfile.devcontainer

🛂 DClint : contrôler vos Docker Compose

Note

Cette partie nécessite d'avoir fait la partie sur Docker compose

Qui dit "as code" comme l'est Docker compose, dit évidemment "linting" pour vérifier que tout est correct !

Pour cela, il existe un outil opensource DClint qui permet de vérifier quelques bonnes pratiques dans vos fichiers docker-compose.yml.

DClint propose différents modes d'utilisation, évidemment automatisable dans vos pipelines CI/CD. Ici on va l'utiliser via un conteneur Docker (pratique vu qu'on est dans un atelier Docker !)

Contrôler un Docker Compose

En utilisant Docker, exécuter DClint sur le fichier docker-compose.yml de la partie 3 du chapitre compose

Linting terminé

Le linting est exécuté et le rapport remonte des informations

La solution est là... ⤵️
dclint docker-compose.yml

DCLint propose de corriger automatiquement certains problèmes via l'option --fix.

Corriger automatiquement

En utilisant Docker, exécuter DClint avec l'option --fix sur le fichier docker-compose.yml de la partie 3 du chapitre compose

Fichier corrigé

Le fichier docker-compose.yml a été corrigé automatiquement

La solution est là... ⤵️
dclint --fix docker-compose.yml

🧩 Kompose : passer de Docker à Kubernetes sans forcer

Note

Cette partie nécessite d'avoir fait la partie sur Docker compose

Il est fréquent qu'en local, les équipes travaillent avec Docker plutôt qu'avec Kubernetes. Mais comment faire pour passer de l'un à l'autre sans tout réécrire ? C'est là qu'intervient Kompose, un outil qui permet de convertir des fichiers Docker Compose en des manifests Kubernetes.

⚠️ Cela ne permet pas d'avoir des manifests optimisés pour la production, mais c'est un bon point de départ.

Exécuter Kompose

Exécuter la commande kompose pour générer les manifests en lien avec la partie 8 du chapitre compose dans le répertoire k8s-manifests/

Manifests générés

Les manifest pour les 3 services (backend, frontend et openapi) ont été générés.

La solution est là... ⤵️
kompose convert --profile dev -f docker-compose.yml -o k8s-manifests/

🤿 Dive : Inspecter vos images

Parfois, on ne comprend pas ce qu'il ne marche pas dans une image Docker, pourquoi un binaire ou un fichier n'est pas là, ou pourquoi l'image est si grosse.

Grâce à Dive, vous pouvez facilement inspecter les layers d'une image Docker pour comprendre son contenu, les différentes étapes de sa construction et sa structure.

Trouver l'easteregg

  • Utiliser Dive pour inspecter l'image registry.gitlab.com/yodamad-workshops/2026/workshop-docker/devcontainer:easteregg et trouver l'easteregg caché et à quelle layer il a été ajouté.
  • Extraire le fichier easteregg de l'image et le sauvegarder localement pour récupérer le mot de passe caché à l'intérieur.

ℹ️ Vous aurez besoin de changer l'export de la variable DOCKER_HOST (si vous êtes avec Coder) : export DOCKER_HOST=tcp://localhost:2375

Easteregg trouvé

Vous avez trouvé le fichier easteregg, bravo ! Un cadeau vous attend en échange du mot de passe.

ℹ️ Vous pouvez utiliser coontrol+F pour chercher un fichier dans une layer

La solution est là... ⤵️

Pour inspecter l'image avec Dive :

Inspecter l'image avec Dive
dive registry.gitlab.com/yodamad-workshops/2026/workshop-docker/devcontainer:easteregg

Pour extraire le fichier easteregg, il faut créer un conteneur temporaire à partir de l'image et extraire le fichier.

Récupérer le fichier easteregg
docker create --name temp_container registry.gitlab.com/yodamad-workshops/2026/workshop-docker/devcontainer:easteregg
docker cp temp_container:/root/easteregg.txt easteregg.txt
docker rm temp_container