Formation DevOps | Formation Terraform : 20- Les Dockerfiles
Un dockerfile est un fichier texte (donc versionable ) de description qui permet de générer une image.
Il est basé sur une image standard auquel on ajoute les éléments propres à l’application que l’on veut déployer.
Instructions de bases :
FROM permet de définir depuis quelle base votre image va être créée.
LABEL maintainer permet de définir l’auteur de l’image
RUN permet de lancer une commande, mais aura aussi pour effet de créer une image intermédiaire.
ADD permet de copier un fichier depuis la machine hôte ou depuis une URL.
EXPOSE permet d’exposer un port du container vers l’extérieur
CMD détermine la commande qui sera exécutée lorsque le container démarrera.
ENTRYPOINT permet d’ajouter une commande qui sera exécutée par défaut
WORKDIR permet de définir le dossier de travail pour toutes les autres commandes (par exemple RUN, CMD,
ENTRYPOINT et ADD)
ENV permet de définir des variables d’environnements qui pourront ensuite être modifiées grâce au
paramètre de la commande run –env
VOLUMES permet de créer un point de montage qui permettra de persister les données.
On pourra alors choisir de monter ce volume dans un dossier spécifique en utilisant la commande run -v
Exemple de Dockerfile :
Pour builder une images à partir d’un dockerfile: docker build –tag bulletinboard:1.0.
Chaque commande : ADD, COPY, RUNest lancer dans un sous conteneur.
Utilisation de cache durant le build pour éviter de refaire des commandes déjà lancer avant.
Exemple utilisation de cache :
Si je le construis une première fois sans préparer mon environnement de build, je vais voir s’afficher:
- Les logs de téléchargement de Ubuntu 19.04.
- Les logs de la commande apt (très verbeux).
- Quelques lignes qui indiquent qu’on lance un WORKDIR.
- La copie du fichier file1 qui a échoué car j’ai oublié (pour les besoins de l’exemple) de l’ajouter à côté de mon Dockerfile.
Corrigeons l’erreur en ajoutant le fichier à côté du Dockerfile et relançons le build.
Docker utilise un cache pour éviter de refaire une étape qu’il aurait déjà faite. Systématiquement, la ligne qui suit Using cache est ce fameux hash qui qui permet de retrouver l’étape déjà exécutée.
Chaque hash sert à identifier le FileSystem d’un conteneur intermédiaire dans lequel Docker a sauvegardé le résultat d’une exécution. Grâce à ça, quand Docker arrive à une étape et se rend compte qu’il l’a déjà exécutée par le passé, il récupère directement son résultat plutôt que de la rejouer. On peut retrouver
tous les hash des étapes d’une image à l’aide de la commande docker history, de l’étape la plus ancienne à
la plus récente.
TP5 :Pratiquer du DockerFile
Construire le dockerfile de l’application nodeJS :
- A partir de l’image node : node:6.14.2 ,
- Copier le fichier à l’intérieur du conteneur.
- lancer la commande node server.js au lancement de conteneur.
- Ensuite builder l’image , taguer l’image , un tag spécifique.
- Lancer le conteneur à partir de l’image personnaliser en rajoutant un port pour la tester sachant que l’image initiale est à l’écoute de port 8080.
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io