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

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 :

docker-bake.hcl
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 :

docker-bake.hcl
target "myapp" {
  context = "."
  dockerfile = "Dockerfile"
  tags = ["myapp:latest"]
  args = {
    foo = "bar"
  }
  no-cache = true
  platforms = ["linux/amd64", "linux/arm64"]
}
Tip

Vous 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.