Introduction à Bake
Bake est une abstraction pour la commande docker build
qui vous permet de gérer plus facilement
votre configuration de build (indicateurs CLI, variables d'environnement, etc.) de manière
cohérente pour tous les membres de votre équipe.
Bake est une commande intégrée à la CLI Buildx, donc tant que vous avez Buildx
installé, vous avez également accès à bake, via la commande docker buildx bake
.
Construire un projet avec Bake
Voici un exemple simple d'une commande docker build
:
$ docker build -f Dockerfile -t myapp:latest .
Cette commande construit le Dockerfile dans le répertoire courant et tague l'image
résultante comme myapp:latest
.
Pour exprimer la même configuration de build en utilisant Bake :
target "myapp" {
context = "."
dockerfile = "Dockerfile"
tags = ["myapp:latest"]
}
Bake fournit un moyen structuré de gérer votre configuration de build, et il vous évite
d'avoir à vous souvenir de tous les indicateurs CLI pour docker build
à chaque fois.
Avec ce fichier, construire l'image est aussi simple que d'exécuter :
$ docker buildx bake myapp
Pour les builds simples, la différence entre docker build
et docker buildx bake
est minime. Cependant, à mesure que votre configuration de build devient plus complexe, Bake
fournit un moyen plus structuré de gérer cette complexité, qui serait
difficile à gérer avec les indicateurs CLI pour docker build
. Il fournit également un
moyen de partager les configurations de build au sein de votre équipe, afin que tout le monde
construise des images de manière cohérente, avec la même configuration.
Le format de fichier Bake
Vous pouvez écrire des fichiers Bake en HCL, YAML (fichiers Docker Compose), ou JSON. En général, HCL est le format le plus expressif et le plus flexible, c'est pourquoi vous le verrez utilisé dans la plupart des exemples de cette documentation, et dans les projets qui utilisent Bake.
Les propriétés qui peuvent être définies pour une cible ressemblent étroitement aux indicateurs CLI pour
docker build
. Par exemple, considérez la commande docker build
suivante :
$ docker build \
-f Dockerfile \
-t myapp:latest \
--build-arg foo=bar \
--no-cache \
--platform linux/amd64,linux/arm64 \
.
L'équivalent Bake serait :
target "myapp" {
context = "."
dockerfile = "Dockerfile"
tags = ["myapp:latest"]
args = {
foo = "bar"
}
no-cache = true
platforms = ["linux/amd64", "linux/arm64"]
}
TipVous voulez une meilleure expérience d'édition pour les fichiers Bake dans VS Code ? Découvrez l'Extension VS Code Docker (Beta) pour le linting, la navigation dans le code et l'analyse des vulnérabilités.
Prochaines étapes
Pour en savoir plus sur l'utilisation de Bake, consultez les rubriques suivantes :
- Apprenez à définir et à utiliser les cibles dans Bake
- Pour voir toutes les propriétés qui peuvent être définies pour une cible, consultez la référence du fichier Bake.