Afficher la configuration finale sans construire
Dans cette dernière étape, nous allons explorer comment visualiser la configuration finale que docker buildx bake
utilisera pour une cible spécifique, y compris les éventuelles surcharges appliquées avec le flag --set
, sans déclencher réellement la construction. Cela est utile pour déboguer vos fichiers bake et comprendre la configuration effective avant de lancer le build.
Le flag --print
avec docker buildx bake
permet d'afficher la configuration résolue au format JSON.
Assurez-vous d'être dans le répertoire ~/project
.
cd ~/project
Affichons la configuration pour la cible my-app-dev
.
docker buildx bake my-app-dev --print
Cette commande produira une représentation JSON de la configuration de la cible my-app-dev
telle qu'elle est dérivée du fichier docker-bake.hcl
.
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:dev"]
}
}
}
Voyons maintenant comment le flag --set
affecte la configuration affichée. Nous allons afficher la configuration pour my-app-dev
tout en surchargeant le tag avec my-app:testing
.
docker buildx bake my-app-dev --set my-app-dev.tags=my-app:testing --print
Observez le résultat. L'attribut tags
dans la sortie JSON devrait maintenant refléter la valeur surchargée.
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:testing"]
}
}
}
De même, vous pouvez afficher la configuration pour la cible my-app-prod
et surcharger son argument de build.
docker buildx bake my-app-prod --set my-app-prod.args.BUILD_ENV=staging --print
La sortie JSON pour la cible my-app-prod
montrera les args
avec la valeur surchargée de BUILD_ENV
.
{
"target": {
"my-app-prod": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:prod"],
"args": {
"BUILD_ENV": "staging"
}
}
}
}
Le flag --print
est un outil précieux pour vérifier vos configurations de fichiers bake et comprendre comment les surcharges sont appliquées avant de lancer des constructions potentiellement longues.