Télécharger les images de services en ignorant les services buildables
Dans cette étape, nous allons explorer comment utiliser le flag --ignore-buildable avec docker compose pull. Ce flag est utile lorsque votre fichier compose.yaml contient à la fois des services construits à partir d'un Dockerfile (services "buildables") et des services utilisant des images pré-construites. Le flag --ignore-buildable indique à Docker Compose de ne télécharger que les images des services spécifiant une clé image, en ignorant ceux avec une clé build.
Commencez par modifier notre fichier compose.yaml pour y inclure un service "buildable". Nous ajouterons un service simple construisant une image basique.
Assurez-vous d'être dans le répertoire ~/project/my-compose-app.
cd ~/project/my-compose-app
Créez maintenant un Dockerfile simple pour notre service "buildable".
nano Dockerfile
Collez le contenu suivant dans le Dockerfile:
FROM alpine:latest
CMD ["echo", "Hello from buildable service!"]
Enregistrez le fichier et quittez l'éditeur nano.
Modifiez ensuite le fichier compose.yaml pour ajouter un nouveau service utilisant ce Dockerfile.
nano compose.yaml
Ajoutez la définition de service suivante à votre fichier compose.yaml, après le service db:
builder:
build: .
Votre fichier compose.yaml complet devrait maintenant ressembler à ceci:
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: redis:latest
builder:
build: .
Enregistrez le fichier et quittez l'éditeur nano.
Essayons maintenant de télécharger les images avec docker compose pull --ignore-buildable.
docker compose pull --ignore-buildable
Vous observerez que Docker Compose vérifie les services web et db et télécharge leurs images si nécessaire (elles devraient déjà être présentes des étapes précédentes). Cependant, il ignorera le service builder car il utilise la clé build au lieu de la clé image. Vous ne verrez aucune sortie concernant la construction ou le téléchargement d'une image pour le service builder.
Pour confirmer qu'aucune image n'a été construite ou téléchargée pour le service builder, listez vos images Docker.
docker images
Vous devriez toujours voir uniquement les images nginx et redis. Aucune nouvelle image n'aura été créée à partir du Dockerfile par cette commande.
Cette démonstration montre comment le flag --ignore-buildable permet de sélectivement télécharger uniquement les images pré-construites, ce qui peut être utile dans divers scénarios de développement et de déploiement.