Utiliser le fichier Dockerfile

Nous avons décris, dans la leçon précédente, le fonctionnement d'un Dockerfile. On nous a rappelé également l'objectif de ce fichier, créer une image personnalisée à partir d'une image existante.

Nous allons maintenant créer notre propre image à partir d'une autre. Nous choisirons pour cet exercice l'image que nous connaissons bien celtak/ubuntu-ping-ip et nous allons y rajouter de nouvelles fonctionnalités.

Nous comprenons ainsi, qu'il est possible de créer une image personnalisée à partir d'une autre image personnalisée 😄.

Créer le fichier Dockerfile

Nous allons créer pour l'occasion, quelque part dans notre machine, un nouveau dossier. Nous pourrons, par exemple, l'appeler exercice-Dockerfile.

mkdir exercice-Dockerfile

Nous allons entrer dans ce dossier.

cd exercice-Dockerfile

Désormais nous allons créer le fichier Dockerfile. On pourra après coup l'utiliser.

touch Dockerfile

⚠️ Nous rappelons que ce fichier doit forcément porter le nom Dockerfile et sans porter d'extension. Sinon cela ne fonctionnera pas.

Remplir notre Dockerfile

Ouvrez le fichier Dockerfile précédemment créé via votre éditeur de texte préféré. On pourra ainsi le remplir d'un contenu qui nous permettra de créer notre nouvelle image.

On va commencer par informer que l'image de base est celtak/ubuntu-ping-ip. Pour cela nous allons nous servir du mot-clé FROM.

FROM celtak/ubuntu-ping-ip

On va, par la suite, utiliser le mot-clé RUN pour installer d'autres programmes.

Pour rappel, cette image contient déjà les programmes ip et ping.

Qu'est-ce que l'on pourrait bien installer 🤔 ?

Ce que l'on souhaite 🙂.

Pour notre exercice, nous allons installer une version de Node.js.

Pour information, Node.js est un programme qui nous permet d'exécuter du code JavaScript. Celui-ci est très populaire et généralement utilisé pour créer des serveurs web.

Mais avant, mettons à jour les dépôts en ajoutant la ligne correspondante.

FROM celtak/ubuntu-ping-ip
RUN apt-get update

On va maintenant installer Node.js, avec une ligne en plus.

FROM celtak/ubuntu-ping-ip
RUN apt-get update
RUN apt-get install -y nodejs

Il ne faut pas oublier le -y sinon en cours d'installation, on nous posera la question : "Est-ce que nous voulons continuer l'installation ?". Mais comme les choses se font automatiquement via la construction de notre image, nous n'aurons pas la possibilité d'y répondre. Ajouter -y, répond automatiquement oui (ou yes) à cette question 😲.

D'autres mots-clé sont utilisables pour atteindre d'autres objectifs. Pour les connaître vous pouvez vous aider de la documentation.

Et voilà ! Notre Dockerfile est terminé. Dans la prochaine leçon, on va pouvoir construire notre image.