Docker-5 Dockerfile 📑

Objectifs:
🎯 automatisation de création d"images docker.

Prérequis:
💡 connaître ubuntu.
💡 connaître docker.


logo de docker, outil devops de conteneurisation de services et d'applications.

Dans le précédent chapitre Docker-4: Gestion des dépôts nous nous sommes connectés en ligne commande à notre dépôt docker fraichement crée. Dans ce chapitre nous allons créer une image à partir d'un Dockerfile pour la pousser dans notre dépôt dockerhub.

1) Définition
Un Dockerfile est un fichier qui permet de décrire les modifications que l'on veut apporter à une image existante pour en générer une nouvelle. On peut appliquer un certain nombre d'instructions telles que:
- FROM: pour savoir quelle sera l'image sur laquelle on va exécuter les différentes instructions.
- RUN: pour lancer une commande dans le shell.
- COPY: pour copier des fichiers de la machines hôte.
Pour avoir une liste exhaustive je vous invite à consulter la documentation officielle. Les commentaires sont supprimés du Dockerfile juste avant que les instructions soient exécutés, ils ne sont donc pas pris en compte par le shell.

2) Créer un Dockerfile
Le fichier commence forcément par une instruction 'FROM' pour déterminer notre image docker de référence. Je vais reprendre l'exemple de mon site web citations utilisé dans des chapitres précédents. Je sais que je veux faire une image docker d'un site statique et que c'est possible d'en déployer un avec un serveur nginx. Pour ce faire il faut déployer un serveur nginx puis copier le code source du site citations dans le répertoire '/usr/share/nginx/html'. Ce qui nous donne le Dockerfile suivant:

Dockerfile pour la création d'une image docker de mon site web citations.

Sachant que mes fichiers sont organisés comme suit:

Architecture du projet github.

3) Construire l'image à l'aide du Dockerfile

sudo docker build -t citations-tuto .;

* l'option '-t' permet dedéfinir le nom de l'image.
* le '.' indique le chemin vers le Dockerfile en fonction du répertoire dans lequel la commade est lancée.

Résultat de la commande docker build pour la création d'une iage docker de mon site web citations.

4) Vérifier la présence de l'image

sudo docker images | grep citations;

Résultat de la commande docker images.

5) Pousser l'image dans son dépôt dockerhub

sudo docker tag [image_id] [repo_name]/[image_name]:[image tag];
sudo docker push [repo_name]/[image_name]:[image tag];

Push de l'image dans le dépôt dockerhub.

* On retrouve bien notre nouvelle image avec son tag 'vtuto' dans notre dépôt publique coté dockerhub 👇🏾.

Dockerhub avec la nouvelle image.

Conclusion:
Maintenant que vous savez éditer des Dockerfile vous pouvez vous amuser à automatiser la création de vos images docker, en les incluants dans vos CI/CD.