Skip to content

ContainerImageFormat should also enforce Docker/OCI formats for layer media types, not just manifests #48639

@baronfel

Description

@baronfel

Describe the bug

It's possible today for an image created in OCI format (either explicitly with ContainerImageFormat or implicitly with multi-RID images) to have OCI-named manifest media types, but Docker-named layer media types:

{
	"schemaVersion": 2,
	"mediaType": "application/vnd.oci.image.manifest.v1+json",
	"config": {
		"mediaType": "application/vnd.oci.image.config.v1+json",
		"size": 3360,
	        "digest": "<redacted>"
	},
	"layers": [
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 28227259,
			"digest": "<redacted>"
		},
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 18722943,
			"digest": "<redacted>"
		},
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 3278,
			"digest": "<redacted>"
		},
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 32249997,
			"digest": "<redacted>"
		},
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 154,
			"digest": "<redacted>"
		},
		{
			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
			"size": 11071998,
			"digest": "<redacted>"
		},
		{
			"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
			"size": 5430507,
			"digest": "<redacted>"
		}
	]
}

We should ensure that the layer and manifest media types are aligned when a user expresses a desire here - even though per spec mixing the two is allowed and most tooling doesn't have a problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-ContainersRelated to dotnet SDK containers functionalityuntriagedRequest triage from a team member

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions