The manifest list is a higher-level manifest which points to specific image manifests for one or more platforms. While the use of a manifest list is OPTIONAL for image providers, image consumers SHOULD be prepared to process them.
This section defines the application/vnd.oci.image.manifest.list.v1+json media type.
For the media type(s) that this document is compatible with, see the matrix.
-
schemaVersionintThis REQUIRED property specifies the image manifest schema version. For this version of the specification, this MUST be
2to ensure backward compatibility with older versions of Docker. The value of this field will not change. This field MAY be removed in a future version of the specification. -
mediaTypestringThis property is reserved for use, to maintain compatibility. When used, this field contains the media type of this document, which differs from the descriptor use of
mediaType. -
manifestsarray of objectsThis REQUIRED property contains a list of manifests for specific platforms. While the property MUST be present, the size of the array MAY be zero.
Each object in
manifestsis a descriptor with the following additional properties and restrictions:-
mediaTypestringThis descriptor property has additional restrictions for
manifests. Implementations MUST support at least the following media types:Manifest lists concerned with portability SHOULD use one of the above media types.
-
platformobjectThis REQUIRED property describes the platform which the image in the manifest runs on.
-
architecturestringThis REQUIRED property specifies the CPU architecture. Manifest lists SHOULD use, and implementations SHOULD understand, values supported by runtime-spec's
platform.arch. -
osstringThis REQUIRED property specifies the operating system. Manifest lists SHOULD use, and implementations SHOULD understand, values supported by runtime-spec's
platform.os. -
os.versionstringThis OPTIONAL property specifies the operating system version, for example
10.0.10586. -
os.featuresarray of stringsThis OPTIONAL property specifies an array of strings, each specifying a mandatory OS feature (for example on Windows
win32k). -
variantstringThis OPTIONAL property specifies the variant of the CPU, for example
armv6lto specify a particular CPU variant of the ARM CPU. -
featuresarray of stringsThis OPTIONAL property specifies an array of strings, each specifying a mandatory CPU feature (for example
sse4oraes).
-
-
-
annotationsstring-string mapThis OPTIONAL property contains arbitrary metadata for the manifest list. This OPTIONAL property MUST use the annotation rules.
Example showing a simple manifest list pointing to image manifests for two platforms:
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.list.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 7143,
"digest": "sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f",
"platform": {
"architecture": "ppc64le",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 7682,
"digest": "sha256:5b0bcabd1ed22e9fb1310cf6c2dec7cdef19f0ad69efa1f392e94a4333501270",
"platform": {
"architecture": "amd64",
"os": "linux",
"os.features": [
"sse4"
]
}
}
],
"annotations": {
"com.example.key1": "value1",
"com.example.key2": "value2"
}
}