Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
4.3 KiB
OCI Image Manifest List Specification
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.
Manifest List Property Descriptions
-
schemaVersion
intThis REQUIRED property specifies the image manifest schema version. For this version of the specification, this MUST be
2
to 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. -
mediaType
stringThis 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
. -
manifests
array 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
manifests
is a descriptor with the following additional properties and restrictions:-
mediaType
stringThis 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.
-
platform
objectThis REQUIRED property describes the platform which the image in the manifest runs on.
-
architecture
stringThis REQUIRED property specifies the CPU architecture. Manifest lists SHOULD use, and implementations SHOULD understand, values supported by runtime-spec's
platform.arch
. -
os
stringThis REQUIRED property specifies the operating system. Manifest lists SHOULD use, and implementations SHOULD understand, values supported by runtime-spec's
platform.os
. -
os.version
stringThis OPTIONAL property specifies the operating system version, for example
10.0.10586
. -
os.features
array of stringsThis OPTIONAL property specifies an array of strings, each specifying a mandatory OS feature (for example on Windows
win32k
). -
variant
stringThis OPTIONAL property specifies the variant of the CPU, for example
armv6l
to specify a particular CPU variant of the ARM CPU. -
features
array of stringsThis OPTIONAL property specifies an array of strings, each specifying a mandatory CPU feature (for example
sse4
oraes
).
-
-
-
annotations
string-string mapThis OPTIONAL property contains arbitrary metadata for the manifest list. This OPTIONAL property MUST use the annotation rules.
Example Manifest List
Example showing a simple manifest list pointing to image manifests for two platforms:
{
"schemaVersion": 2,
"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"
}
}