‫D'accord. Regardons quelques exemples supplémentaires de Dockerfile.
‫Dans notre référentiel que vous avez téléchargé à partir de mon Github, passons à l'échantillon numéro 2 de Dockerfile.
‫Cette fois, nous avons en fait deux fichiers.
‫Nous avons le fichier Docker. Et maintenant nous avons un index. html.
‫Super simple. Bonjour le monde. HTML.
‫Ce n'est pas vraiment important de comprendre le HTML.
‫Nous allons simplement le copier dans notre image de conteneur au fur et à mesure de sa construction.
‫Si nous examinons le fichier Dockerfile, vous verrez sur celui-ci que nous utilisons Nginx comme commande
‫FROM.
‫Nous ne construisons pas notre propre Nginx, car idéalement, si vous pouvez utiliser une image officielle pour effectuer le travail
‫à partir de Docker Hub, il sera beaucoup plus facile pour vous de gérer ce fichier Docker et de le maintenir
‫en état de fonctionner.
‫Dans des scénarios plus simples, l'image officielle est souvent le travail. Mais au fur et à mesure que votre
‫environnement et vos systèmes se complexifient, vous constaterez probablement que vous devez ajouter des logiciels personnalisés
‫supplémentaires, modifier le mode de démarrage, ou ajouter des scripts pour modifier la configuration.
‫Mais lorsque je démarre un nouveau projet ou que je convertis une ancienne application, je commence toujours
‫par les images officielles de Docker Hub. Puis, une fois que je me suis heurté à des barrages
‫routiers et que je ne suis plus en mesure d’utiliser cette image, je pourrais revenir à Docker Hub et jeter un autre
‫coup d’œil pour voir s’il ya quelque chose de vraiment populaire, que je peux faire confiance, et examiner voir si ça va résoudre mon problème.
‫Mais il n'y a rien de mal à construire le vôtre.
‫C'est juste plus de travail et plus d'entretien dans le temps.
‫Donc voici super simple. Nous avons trois strophes.
‫Vous avez vu le de avant auparavant. Et cette fois nous avons le WORKDIR.
‫En réalité, il s’agit essentiellement de lancer un changement de répertoire d’espace cd. Donc, vous pourriez être tenté d'utiliser la commande run et tapez
‫simplement run cd dans ce répertoire, puis faites certaines choses. Toutefois, la meilleure pratique pour Dockerfiles
‫est de toujours utiliser une strophe WORKDIR distincte chaque fois que vous modifiez des répertoires.
‫Ainsi, si votre fichier devient un peu complexe et que vous devez vous déplacer dans votre conteneur pour
‫effectuer des tâches pendant la construction, vous voulez toujours utiliser WORKDIR car il est beaucoup plus facile de décrire ce que
‫vous faites dans Dockerfile.
‫Dans ce cas, ce que nous faisons ici, c’est que nous passons au répertoire par défaut de
‫Nginx pour ses fichiers HTML.
‫Dans la configuration par défaut sur Docker Hub, Nginx agit uniquement comme un serveur Web et ne fait que servir
‫des fichiers statiques directement à partir du disque conteneur.
‫La dernière strophe que nous avons ici est la copie. Et c'est la strophe que vous utiliserez toujours pour copier
‫votre code source à partir de votre machine locale ou de vos serveurs de construction dans vos images de conteneur.
‫Dans ce cas, nous prenons simplement notre index simple. html et nous remplaçons le fichier dans le répertoire
‫par défaut de Nginx afin qu’il s’agisse de notre page d’accueil personnalisée pour le serveur Web.
‫Avant de construire cela, vous remarquerez qu'il nous manque des strophes obligatoires, comme le cmd.
‫Alors, comment pouvons-nous nous en sortir?
‫Eh bien, il y a déjà une cmd spécifiée dans l'image FROM.
‫Et lorsque nous utilisons la variable FROM, nous héritons de tout ce qui se trouve dans le fichier Dockerfile, si ce n'est même un mot.
‫Vous pouvez ainsi chaîner des fichiers Dockerfile de manière à ce que les images dépendent d'autres
‫images, lesquelles dépendent d'autres images.
‫D'accord. Voyons comment cela fonctionne.
‫Avant de construire cela, rappelons-nous rapidement ce que fait un serveur Nginx par défaut.
‫Faisons une rapide exécution du conteneur-docker -p 8080, et nous n’allons pas avoir besoin de cela très longtemps, nous allons donc faire un --rm afin qu’il soit
‫supprimé lorsqu’il est arrêté. Nous nous moquons du nom. Nous
‫allons juste courir Nginx. Si nous sautons sur notre navigateur et tapons simplement localhost, nous verrons
‫la page d'index par défaut de Nginx.
‫D'ACCORD.
‫Souvenons-nous de cela, puis quittons ce conteneur et nous allons maintenant construire
‫notre version de Nginx avec notre fichier de code source supplémentaire.
‫D'ACCORD.
‫Celui-ci devrait réellement aller très vite.
‫Vous remarquez que cela n'a pris que quelques secondes. C'est parce que nous avions déjà Nginx dans notre cache d'images. Et tout ce qui se
‫passait était de copier un très petit fichier et de changer le répertoire de travail.
‫Lançons maintenant la commande exacte que nous venons d'exécuter pour Nginx. Seulement cette fois, nous allons utiliser
‫cette nouvelle image que nous venons de construire.
‫Basculez vers notre navigateur et actualisez-le, et c'est parfait.
‫Notre index HTML personnalisé y est exécuté et notre conteneur fonctionne.
‫Si nous faisons une image rapide ls, nous pouvons voir notre dernière image en haut.
‫Si nous voulions réellement envoyer ceci à Docker Hub, cela fonctionne de la même manière que nous l'avons fait précédemment.
‫Nous avons juste besoin de re-taguer. Donc, nous pouvons faire tag image de docker.
‫Si vous vous souvenez de la commande help, nous pouvons regarder le format et c'est
‫toujours celui que nous taguons et l'étiquette que nous voulons ensuite appeler. Donc, docker image tag nginx avec HTML dernière.
‫Et puis je vais devoir l'appeler bretfisher ... comme ça.
‫Ensuite, si je refais une image docker ls, vous verrez que les deux lignes du haut ont à nouveau le même identifiant
‫d'image et simplement étiquetées différemment.
‫Maintenant, je peux faire un push de docker avec ce référentiel et cette balise, et je peux l'obtenir sur Docker Hub.