🛠️ 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:
🛂 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
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
🧩 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.
🤿 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:easteregget trouver l'easteregg caché et à quelle layer il a été ajouté. - Extraire le fichier
eastereggde 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