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.