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.