Mostrar la configuración resultante sin construir
En este paso final, exploraremos cómo ver la configuración final que docker buildx bake utilizará para un objetivo específico, incluyendo cualquier sobrescritura aplicada con el flag --set, sin necesidad de ejecutar realmente la construcción. Esto es útil para depurar tus archivos bake y comprender la configuración efectiva antes de construir.
El flag --print con docker buildx bake te permite mostrar la configuración resuelta en formato JSON.
Asegúrate de estar en el directorio ~/project.
cd ~/project
Mostremos la configuración para el objetivo my-app-dev.
docker buildx bake my-app-dev --print
Este comando mostrará una representación JSON de la configuración del objetivo my-app-dev derivada del archivo docker-bake.hcl.
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:dev"]
}
}
}
Ahora veamos cómo el flag --set afecta la configuración mostrada. Mostraremos la configuración para my-app-dev sobrescribiendo el tag a my-app:testing.
docker buildx bake my-app-dev --set my-app-dev.tags=my-app:testing --print
Observa la salida. El atributo tags en el JSON ahora debería reflejar el valor sobrescrito.
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:testing"]
}
}
}
De manera similar, puedes mostrar la configuración para el objetivo my-app-prod y sobrescribir su argumento de construcción.
docker buildx bake my-app-prod --set my-app-prod.args.BUILD_ENV=staging --print
La salida JSON para el objetivo my-app-prod mostrará los args con el valor sobrescrito de BUILD_ENV.
{
"target": {
"my-app-prod": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:prod"],
"args": {
"BUILD_ENV": "staging"
}
}
}
}
El flag --print es una herramienta valiosa para verificar las configuraciones de tus archivos bake y comprender cómo se aplican las sobrescrituras antes de iniciar construcciones que podrían ser largas.