Skip to content

Commit a3b9724

Browse files
committed
manifest: List media types supported by descriptor references
Require implementations to support these media types (although an implementation which also supports additional media types is still compliant). Suggest portable manifests and manifest lists stick to these types so the can rely on implementation support. A manifest(-list) can safely use a type from outside the list if the author expects the implementation to support the extension type (e.g. application/vnd.docker.image.rootfs.diff.tar.gzip). But how that out-of-band expectation is setup is beyond the scope of this specification. Signed-off-by: W. Trevor King <[email protected]>
1 parent 7e6e2f7 commit a3b9724

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

manifest.md

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,16 @@ A client will distinguish a manifest list from an image manifest based on the Co
3030
This REQUIRED property contains a list of manifests for specific platforms.
3131
While the property MUST be present, the size of the array MAY be zero.
3232

33-
Each object in the manifest is a [descriptor](descriptor.md) with the following additional properties:
33+
Each object in the manifest is a [descriptor](descriptor.md) with the following additional properties and restrictions:
34+
35+
- **`mediaType`** *object*
36+
37+
This [descriptor property](descriptor.md#properties) has additional restrictions for `manifests`.
38+
Implementations MUST support at least the following media types:
39+
40+
- [`application/vnd.oci.image.manifest.v1+json`](#image-manifest)
41+
42+
Manifest lists concerned with portability SHOULD use one of the above media types.
3443

3544
- **`platform`** *object*
3645

@@ -135,7 +144,16 @@ Unlike the [Manifest List](#manifest-list), which contains information about a s
135144
- **`config`** *[descriptor](descriptor.md)*
136145

137146
This REQUIRED property references a configuration object for a container, by digest.
138-
The referenced configuration object is a JSON blob that the runtime uses to set up the container, see [Image JSON Description](serialization.md#image-json-description).
147+
Beyond the [descriptor requirements](descriptor.md#properties), the value has the following additional restrictions:
148+
149+
- **`mediaType`** *object*
150+
151+
This [descriptor property](descriptor.md#properties) has additional restrictions for `config`.
152+
Implementations MUST support at least the following media types:
153+
154+
- [`application/vnd.oci.image.config.v1+json`](serialization.md)
155+
156+
Manifests concerned with portability SHOULD use one of the above media types.
139157

140158
- **`layers`** *array*
141159

@@ -144,6 +162,18 @@ Unlike the [Manifest List](#manifest-list), which contains information about a s
144162
Subsequent layers MUST then follow in the order in which they are to be layered on top of each other.
145163
The algorithm to create the final unpacked filesystem layout MUST be to first unpack the layer at index 0, then index 1, and so on.
146164

165+
Beyond the [descriptor requirements](descriptor.md#properties), the value has the following additional restrictions:
166+
167+
- **`mediaType`** *object*
168+
169+
This [descriptor property](descriptor.md#properties) has additional restrictions for `layers[]`.
170+
Implementations MUST support at least the following media types:
171+
172+
- [`application/vnd.oci.image.layer.tar+gzip`](layer.md)
173+
- [`application/vnd.oci.image.layer.nondistributable.tar+gzip`](layer.md#non-distributable-layers)
174+
175+
Manifests concerned with portability SHOULD use one of the above media types.
176+
147177
- **`annotations`** *string-string map*
148178

149179
This OPTIONAL property contains arbitrary metadata for the image manifest.

0 commit comments

Comments
 (0)