Skip to content

Add --format option for --call outline and --call targets #3319

@thaJeztah

Description

@thaJeztah

Description

I was looking for a way to get the output of --call outline in a parseable format;

The default outputs both build-progress and the output (I'm still somewhat considering if that should be disabled by default).

Using --quiet helps for that;

docker build --call outline --quiet .

TARGET: binary

BUILD ARG               VALUE    DESCRIPTION
BASE_VARIANT            alpine
ALPINE_VERSION          3.21     sets the version of the alpine base image to use, including for the golang image.
GO_VERSION              1.24.5
XX_VERSION              1.6.1
GOVERSIONINFO_VERSION   v1.4.1
GO_LINKMODE             static   defines if static or dynamic binary should be produced
GO_BUILDTAGS                     defines additional build tags
GO_STRIP                         strips debugging symbols if set
CGO_ENABLED                      manually sets if cgo is used
VERSION                          sets the version for the produced binary
PACKAGER_NAME                    sets the company that produced the windows binary

Trying to use --format json (as is available on various other commands) failed;

docker build --call outline --quiet --format json .
unknown flag: --format

Usage:  docker buildx build [OPTIONS] PATH | URL | -

Run 'docker buildx build --help' for more information

Instead, I tried to use the --progress=rawjson option (hoping it would be applied to both progress and output), but that failed;

docker build --call outline --quiet --progress rawjson .
ERROR: progress=rawjson and quiet cannot be used together

Removing the --quiet flag resulted in a mixture of json for progress and plain ("pretty printed") text for the output;

docker build --call outline --progress rawjson .
{"vertexes":[{"digest":"sha256:a6cbeff5225ceb525f3c621027662b713c1e9779d5254617275c898a12cb7e8f","name":"[internal] load build definition from Dockerfile"}]}
{"vertexes":
...
...
{"vertexes":[{"digest":"sha256:0b075d4c97dd3536b4530c234b91a25aa670565ad999e120c2b82096efb2114b","name":"[internal] load .dockerignore","started":"2025-07-16T08:37:47.238818877Z","completed":"2025-07-16T08:37:47.281984377Z"}]}
TARGET: binary

BUILD ARG               VALUE    DESCRIPTION
BASE_VARIANT            alpine
ALPINE_VERSION          3.21     sets the version of the alpine base image to use, including for the golang image.
GO_VERSION              1.24.5
XX_VERSION              1.6.1
GOVERSIONINFO_VERSION   v1.4.1
GO_LINKMODE             static   defines if static or dynamic binary should be produced
GO_BUILDTAGS                     defines additional build tags
GO_STRIP                         strips debugging symbols if set
CGO_ENABLED                      manually sets if cgo is used
VERSION                          sets the version for the produced binary
PACKAGER_NAME                    sets the company that produced the windows binary

It would be nice to have an option to change the output format to produce a parseable JSON struct (which could be outlining the build-args per target and/or a list build args and targets.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions