Merge pull request #1797 from crazy-max/fix-image-create

pull/1787/merge
Justin Chadwell 2 years ago committed by GitHub
commit 167cd16acb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -122,24 +122,29 @@ func (r *Resolver) Combine(ctx context.Context, srcs []*Source) ([]byte, ocispec
} }
} }
mt := images.MediaTypeDockerSchema2ManifestList //ocispec.MediaTypeImageIndex dockerMfsts := 0
idx := struct { for _, desc := range newDescs {
// MediaType is reserved in the OCI spec but if strings.HasPrefix(desc.MediaType, "application/vnd.docker.") {
// excluded from go types. dockerMfsts++
MediaType string `json:"mediaType,omitempty"` }
ocispec.Index
}{
MediaType: mt,
Index: ocispec.Index{
Versioned: specs.Versioned{
SchemaVersion: 2,
},
Manifests: newDescs,
},
} }
idxBytes, err := json.MarshalIndent(idx, "", " ") var mt string
if dockerMfsts == len(newDescs) {
// all manifests are Docker types, use Docker manifest list
mt = images.MediaTypeDockerSchema2ManifestList
} else {
// otherwise, use OCI index
mt = ocispec.MediaTypeImageIndex
}
idxBytes, err := json.MarshalIndent(ocispec.Index{
MediaType: mt,
Versioned: specs.Versioned{
SchemaVersion: 2,
},
Manifests: newDescs,
}, "", " ")
if err != nil { if err != nil {
return nil, ocispec.Descriptor{}, errors.Wrap(err, "failed to marshal index") return nil, ocispec.Descriptor{}, errors.Wrap(err, "failed to marshal index")
} }

Loading…
Cancel
Save