⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

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

Requires: Docker Buildx 0.14.0 and later

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 :