Construire une image pour créer un cache de construction
Dans cette étape, nous allons construire une simple image Docker pour générer du cache de construction (build cache). Le cache de construction Docker est un mécanisme qui accélère le processus de build en réutilisant les couches des builds précédents. Lorsque vous construisez une image Docker, chaque instruction dans le Dockerfile crée une couche. Si une instruction n'a pas changé depuis le dernier build, Docker peut réutiliser la couche existante au lieu de la reconstruire.
D'abord, créons un répertoire pour notre projet et naviguons dedans.
mkdir ~/project/docker-cache-demo
cd ~/project/docker-cache-demo
Maintenant, nous allons créer un simple Dockerfile. Ce Dockerfile copiera un fichier dans l'image puis exécutera une commande.
nano Dockerfile
Ajoutez le contenu suivant au Dockerfile
:
FROM ubuntu:latest
COPY . /app
RUN echo "Hello, Docker Cache!" > /app/message.txt
CMD ["cat", "/app/message.txt"]
Enregistrez et fermez le fichier.
Ensuite, créons un simple fichier que nous copierons dans l'image.
nano message.txt
Ajoutez du contenu à message.txt
:
This is a test message.
Enregistrez et fermez le fichier.
Maintenant, nous allons construire l'image Docker. Nous allons taguer l'image comme cache-demo
.
docker build -t cache-demo .
Vous verrez une sortie indiquant que Docker construit l'image étape par étape. Chaque étape correspond à une instruction dans le Dockerfile. Docker téléchargera l'image ubuntu:latest
si elle n'est pas déjà présente, copiera le fichier message.txt
, puis exécutera la commande echo
.
Une fois le build terminé, vous pouvez vérifier que l'image a été créée en listant les images disponibles.
docker images
Vous devriez voir cache-demo
dans la liste des images.
Maintenant, construisons à nouveau l'image sans modifier le Dockerfile ou message.txt
.
docker build -t cache-demo .
Cette fois, vous remarquerez que le processus de build est beaucoup plus rapide. Docker réutilise les couches existantes du build précédent car les instructions dans le Dockerfile et le contenu de message.txt
n'ont pas changé. La sortie affichera "Using cache" pour la plupart des étapes. Cela démontre comment le cache de construction Docker fonctionne pour accélérer les builds ultérieurs.