Construire avec Docker Build Cloud
Pour construire en utilisant Docker Build Cloud, invoquez une commande de build et spécifiez le nom du
constructeur en utilisant le flag --builder
.
$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> --tag <IMAGE> .
Utiliser par défaut
Si vous voulez utiliser Docker Build Cloud sans avoir à spécifier le flag --builder
à chaque fois, vous pouvez le définir comme constructeur par défaut.
Exécutez la commande suivante :
$ docker buildx use cloud-<ORG>-<BUILDER_NAME> --global
-
Ouvrez les paramètres Docker Desktop et naviguez vers l'onglet Constructeurs.
-
Trouvez le constructeur cloud sous Constructeurs disponibles.
-
Ouvrez le menu déroulant et sélectionnez Utiliser.
Changer votre constructeur par défaut avec docker buildx use
ne change que le constructeur
par défaut pour la commande docker buildx build
. La commande docker build
utilise toujours
le constructeur default
, sauf si vous spécifiez le flag --builder
explicitement.
Si vous utilisez des scripts de build, comme make
, nous recommandons de mettre à jour vos
commandes de build de docker build
vers docker buildx build
, pour éviter toute
confusion concernant la sélection du constructeur. Alternativement, vous pouvez exécuter docker buildx install
pour faire que la commande docker build
par défaut se comporte comme docker buildx build
, sans divergences.
Utiliser avec Docker Compose
Pour construire avec Docker Build Cloud en utilisant docker compose build
, définissez d'abord le
constructeur cloud comme votre constructeur sélectionné, puis exécutez votre build.
NoteAssurez-vous d'utiliser une version prise en charge de Docker Compose, voir Prérequis.
$ docker buildx use cloud-<ORG>-<BUILDER_NAME>
$ docker compose build
En plus de docker buildx use
, vous pouvez aussi utiliser le flag docker compose build --builder
ou la
variable d'environnement BUILDX_BUILDER
pour sélectionner le constructeur cloud.
Chargement des résultats de build
Construire avec --tag
charge le résultat du build dans le magasin d'images local
automatiquement quand le build se termine. Pour construire sans tag et charger le
résultat, vous devez passer le flag --load
.
Le chargement du résultat de build pour les images multi-plateformes n'est pas pris en charge. Utilisez le
flag docker buildx build --push
lors de la construction d'images multi-plateformes pour pousser
la sortie vers un registre.
$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
--platform linux/amd64,linux/arm64 \
--tag <IMAGE> \
--push .
Si vous voulez construire avec un tag, mais que vous ne voulez pas charger les résultats dans votre magasin d'images local, vous pouvez exporter les résultats de build vers le cache de build seulement :
$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
--platform linux/amd64,linux/arm64 \
--tag <IMAGE> \
--output type=cacheonly .
Builds multi-plateformes
Pour exécuter des builds multi-plateformes, vous devez spécifier toutes les plateformes que vous
voulez construire en utilisant le flag --platform
.
$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
--platform linux/amd64,linux/arm64 \
--tag <IMAGE> \
--push .
Si vous ne spécifiez pas la plateforme, le constructeur cloud construit automatiquement pour l' architecture correspondant à votre environnement local.
Pour en savoir plus sur la construction pour plusieurs plateformes, référez-vous à Builds multi-plateformes.
Builds cloud dans Docker Desktop
La vue Builds de Docker Desktop fonctionne avec Docker Build Cloud dès le départ. Cette vue peut montrer des informations non seulement sur vos propres builds, mais aussi sur les builds initiés par les membres de votre équipe utilisant le même constructeur.
Les équipes utilisant un constructeur partagé obtiennent l'accès à des informations telles que :
- Builds en cours et terminés
- Configuration, statistiques, dépendances et résultats de build
- Source de build (Dockerfile)
- Logs de build et erreurs
Cela vous permet, à vous et à votre équipe, de travailler de manière collaborative sur le dépannage et l'amélioration des vitesses de build, sans avoir à envoyer des logs de build et des benchmarks entre vous.
Utiliser des secrets avec Docker Build Cloud
Pour utiliser des secrets de build avec Docker Build Cloud,
comme des identifiants d'authentification ou des jetons,
utilisez les flags CLI --secret
et --ssh
pour la commande docker buildx
.
Le trafic est chiffré et les secrets ne sont jamais stockés dans le cache de build.
WarningSi vous utilisez mal les arguments de build pour passer des identifiants, des jetons d'authentification, ou d'autres secrets, vous devriez refactoriser votre build pour passer les secrets en utilisant des montages de secrets à la place. Les arguments de build sont stockés dans le cache et leurs valeurs sont exposées par les attestations. Les montages de secrets ne fuient pas en dehors du build et ne sont jamais inclus dans les attestations.
Pour plus d'informations, référez-vous à :
Gestion du cache de build
Vous n'avez pas besoin de gérer manuellement le cache Docker Build Cloud. Le système le gère pour vous par collecte de déchets.
L'ancien cache est automatiquement supprimé si vous atteignez votre limite de stockage.
Vous pouvez vérifier l'état actuel de votre cache en utilisant la
commande docker buildx du
.
Pour vider manuellement le cache du constructeur,
utilisez la
commande docker buildx prune
.
Cela fonctionne comme la purge du cache pour tout autre constructeur.
WarningPurger le cache d'un constructeur cloud supprime aussi le cache pour les autres membres de l'équipe utilisant le même constructeur.
Désactiver Docker Build Cloud comme constructeur par défaut
Si vous avez défini un constructeur cloud comme constructeur par défaut
et que vous voulez revenir au constructeur docker
par défaut,
exécutez la commande suivante :
$ docker context use default
Cela ne supprime pas le constructeur de votre système. Cela ne change que le constructeur qui est automatiquement sélectionné pour exécuter vos builds.
Registres sur des réseaux internes
Il est possible d'utiliser Docker Build Cloud avec un registre privé ou un miroir de registre sur un réseau interne.