Pilotes de build
Les pilotes de build sont des configurations sur comment et où le backend BuildKit s'exécute. Les paramètres du pilote sont personnalisables et permettent un contrôle précis du builder. Buildx prend en charge les pilotes suivants :
docker
: utilise la bibliothèque BuildKit fournie avec le démon Docker.docker-container
: crée un conteneur BuildKit dédié à l'aide de Docker.kubernetes
: crée des pods BuildKit dans un cluster Kubernetes.remote
: se connecte directement à un démon BuildKit géré manuellement.
Différents pilotes prennent en charge différents cas d'utilisation. Le pilote par défaut docker
privilégie la simplicité et la facilité d'utilisation. Il a un support limité pour les fonctionnalités avancées
comme la mise en cache et les formats de sortie, et n'est pas configurable. D'autres pilotes
offrent plus de flexibilité et sont meilleurs pour gérer des scénarios avancés.
Le tableau suivant présente quelques différences entre les pilotes.
Fonctionnalité | docker |
docker-container |
kubernetes |
remote |
---|---|---|---|---|
Charger automatiquement l'image | ✅ | |||
Exportation du cache | ✓* | ✅ | ✅ | ✅ |
Sortie Tarball | ✅ | ✅ | ✅ | |
Images multi-architectures | ✅ | ✅ | ✅ | |
Configuration de BuildKit | ✅ | ✅ | Géré en externe |
* Le pilote docker
ne prend pas en charge toutes les options d'exportation de cache.
Consultez
Backends de stockage de cache pour plus d'informations.
Chargement dans le magasin d'images local
Contrairement à l'utilisation du pilote par défaut docker
, les images construites avec d'autres pilotes
ne sont pas automatiquement chargées dans le magasin d'images local. Si vous ne spécifiez pas de
sortie, le résultat de la construction est exporté uniquement dans le cache de construction.
Pour construire une image à l'aide d'un pilote non par défaut et la charger dans le magasin d'images,
utilisez l'indicateur --load
avec la commande de construction :
$ docker buildx build --load -t <image> --builder=container .
...
=> exporting to oci image format 7.7s
=> => exporting layers 4.9s
=> => exporting manifest sha256:4e4ca161fa338be2c303445411900ebbc5fc086153a0b846ac12996960b479d3 0.0s
=> => exporting config sha256:adf3eec768a14b6e183a1010cb96d91155a82fd722a1091440c88f3747f1f53f 0.0s
=> => sending tarball 2.8s
=> importing to docker
Avec cette option, l'image est disponible dans le magasin d'images après la fin de la construction :
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
<image> latest adf3eec768a1 2 minutes ago 197MB
Charger par défaut
Vous pouvez configurer les pilotes de build personnalisés pour qu'ils se comportent de manière similaire au
pilote docker
par défaut, et chargent les images dans le magasin d'images local par défaut.
Pour ce faire, définissez l'option de pilote default-load
lors de la création du builder :
$ docker buildx create --driver-opt default-load=true
Notez que, tout comme avec le pilote docker
, si vous spécifiez un format de
sortie différent avec --output
, le résultat ne sera pas chargé dans le magasin d'images
sauf si vous spécifiez également explicitement --output type=docker
ou utilisez l'indicateur --load
.
Prochaines étapes
Lisez à propos de chaque pilote :