diff --git a/docs/reference/buildx_imagetools_inspect.md b/docs/reference/buildx_imagetools_inspect.md index 30a96b5e79b..82555b4933d 100644 --- a/docs/reference/buildx_imagetools_inspect.md +++ b/docs/reference/buildx_imagetools_inspect.md @@ -178,6 +178,8 @@ $ docker buildx imagetools inspect moby/buildkit:master --format "{{json .Manife { "schemaVersion": 2, "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "digest": "sha256:79d97f205e2799d99a3a8ae2a1ef17acb331e11784262c3faada847dc6972c52", + "size": 2010, "manifests": [ { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", diff --git a/util/imagetools/printers.go b/util/imagetools/printers.go index 5e7c4fc5eb4..cc678bb80cb 100644 --- a/util/imagetools/printers.go +++ b/util/imagetools/printers.go @@ -16,6 +16,7 @@ import ( "github.com/containerd/containerd/platforms" "github.com/docker/distribution/reference" binfotypes "github.com/moby/buildkit/util/buildinfo/types" + "github.com/opencontainers/go-digest" ocispecs "github.com/opencontainers/image-spec/specs-go/v1" "github.com/pkg/errors" "golang.org/x/sync/errgroup" @@ -142,7 +143,21 @@ func (p *Printer) Print(raw bool, out io.Writer) error { case images.MediaTypeDockerSchema2Manifest, ocispecs.MediaTypeImageManifest: manifest = p.manifest case images.MediaTypeDockerSchema2ManifestList, ocispecs.MediaTypeImageIndex: - manifest = p.index + manifest = struct { + SchemaVersion int `json:"schemaVersion"` + MediaType string `json:"mediaType,omitempty"` + Digest digest.Digest `json:"digest"` + Size int64 `json:"size"` + Manifests []ocispecs.Descriptor `json:"manifests"` + Annotations map[string]string `json:"annotations,omitempty"` + }{ + SchemaVersion: p.index.Versioned.SchemaVersion, + MediaType: p.index.MediaType, + Digest: p.manifest.Digest, + Size: p.manifest.Size, + Manifests: p.index.Manifests, + Annotations: p.index.Annotations, + } } switch {