diff --git a/driver/docker-container/driver.go b/driver/docker-container/driver.go index f34c37958d39..31d38cc6ca1e 100644 --- a/driver/docker-container/driver.go +++ b/driver/docker-container/driver.go @@ -17,6 +17,7 @@ import ( "github.com/docker/buildx/util/confutil" "github.com/docker/buildx/util/imagetools" "github.com/docker/buildx/util/progress" + "github.com/docker/cli/cli/streams" "github.com/docker/cli/opts" "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/image" @@ -26,6 +27,7 @@ import ( "github.com/docker/docker/errdefs" dockerarchive "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/idtools" + "github.com/docker/docker/pkg/jsonmessage" "github.com/docker/docker/pkg/stdcopy" "github.com/moby/buildkit/client" "github.com/pkg/errors" @@ -94,14 +96,14 @@ func (d *Driver) create(ctx context.Context, l progress.SubLogger) error { if err != nil { return err } - rc, err := d.DockerAPI.ImageCreate(ctx, imageName, image.CreateOptions{ + resp, err := d.DockerAPI.ImageCreate(ctx, imageName, image.CreateOptions{ RegistryAuth: ra, }) if err != nil { return err } - _, err = io.Copy(io.Discard, rc) - return err + defer resp.Close() + return jsonmessage.DisplayJSONMessagesToStream(resp, streams.NewOut(io.Discard), nil) }); err != nil { // image pulling failed, check if it exists in local image store. // if not, return pulling error. otherwise log it.