Imprimir a configuração resultante sem construir
Nesta etapa final, exploraremos como visualizar a configuração final que o docker buildx bake usará para um alvo específico, incluindo quaisquer substituições aplicadas com a flag --set, sem realmente acionar uma construção. Isso é útil para depurar seus arquivos bake e entender a configuração efetiva antes de construir.
A flag --print com docker buildx bake permite que você produza a configuração resolvida em formato JSON.
Certifique-se de estar no diretório ~/project.
cd ~/project
Vamos imprimir a configuração para o alvo my-app-dev.
docker buildx bake my-app-dev --print
Este comando produzirá uma representação JSON da configuração do alvo my-app-dev conforme derivado do arquivo docker-bake.hcl.
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:dev"]
}
}
}
Agora, vamos ver como a flag --set afeta a configuração impressa. Imprimiremos a configuração para my-app-dev enquanto substituímos a tag para my-app:testing.
docker buildx bake my-app-dev --set my-app-dev.tags=my-app:testing --print
Observe a saída. O atributo tags na saída JSON agora deve refletir o valor substituído.
{
"target": {
"my-app-dev": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:testing"]
}
}
}
Da mesma forma, você pode imprimir a configuração para o alvo my-app-prod e substituir seu argumento de construção.
docker buildx bake my-app-prod --set my-app-prod.args.BUILD_ENV=staging --print
A saída JSON para o alvo my-app-prod mostrará os args com o valor BUILD_ENV substituído.
{
"target": {
"my-app-prod": {
"dockerfile": "Dockerfile",
"context": ".",
"tags": ["my-app:prod"],
"args": {
"BUILD_ENV": "staging"
}
}
}
}
A flag --print é uma ferramenta valiosa para verificar suas configurações de arquivo bake e entender como as substituições são aplicadas antes de iniciar construções potencialmente demoradas.