-
Notifications
You must be signed in to change notification settings - Fork 797
Initial import of specs #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| @@ -0,0 +1,573 @@ | |||
| # Docker Image Specification v1.0.0 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
update
|
actually before going any further, some big open questions:
|
4a582d8 to
bf5c3f6
Compare
|
@jonboulle good question. That topic did not come up during the TOB discussions. In some ways this would be considered a fork, though by defining itself a mediatype, then IIRC it could be sourced by a docker v2.s2 manifest and still have predictable processing of the document. |
| } | ||
| ``` | ||
|
|
||
| # Backward compatibility |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
probably makes sense to drop this section?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean we intend to drop compatibility?
|
@vbatts I closed and reopened this to trigger Travis CI. Seems to work. |
|
cool. I initially did not sign the WIP commit for this reason! :-) |
| Its use is optional, and relatively few images will use one of these manifests. | ||
| A client will distinguish a manifest list from an image manifest based on the Content-Type returned in the HTTP response. | ||
|
|
||
| ## *Manifest List* Field Descriptions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why italics for Manifest List? (I might expect code font)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
much of this is just carry over styling that has yet to be visited.
|
@stevvooe Probably a good idea for vbatts to rebase on top of a clean doc. Sorry vbatts. |
manifest.md
Outdated
|
|
||
| The following media types are used by the manifest formats described here, and the resources they reference: | ||
|
|
||
| - `application/vnd.oci.image.manifest.v1+json`: Image manifest format |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we are starting a fork, should there not be a base commit before changing mediatypes? Do we intend to do a full compatibility break with Docker V2.2?
It might be appropriate to declare a mapping of equivalent mediatypes from OCI. For example V2.2 becomes, V1 of OCi and it is compatible with application/vnd.docker....
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
@philips @vbatts @duglin @jonboulle I agree with much of the sentiment in the review of this specification, but the V2.2 manifest schema is already quite flexible for the purposes of describing a configuration target and set of image layers. It was designed to be quite generic and went through almost a year of revisions before being merged. Arguably, the flexibility of the format has not yet been fully realized. While I understand that compatibility may not be the primary goal, let's make sure breaks are based on technical merit. Let's consider defining a baseline that is at least structurally compatible. This would mean we maintain all the fields, as they are. Additions, such as Does this seem reasonable? |
68a5d22 to
155b8ac
Compare
|
@stevvooe understandable that fields can be added without breaking, but regardless I think this would be a new mediatype and binding ourselves to not breaking the docker v2.s2 format could limit conversation. By having a departure into its own mediatype, it allows to build on the year of iteration and not limit ourselves. Also, having the "untouched" commits, they are here c22ca79 and c1ff36f Some points, even like the ".wh." diff type rootfs is something that will be revisited. |
|
@vbatts +1 on a new media type. If at all possible I would like to keep the image layers bit-for-bit compatible for the initial v1 release to make it possible for people to use existing s3 objects for layers. |
|
@philips bit-for-bit compatible [with the docker v2.s2] for the initial v1 release [of the oci image spec] ? |
|
@vbatts It would be ideal if the serialization format for the layer was bit-for-bit compatible for the sanity of the container registries like gcr.io, quay, hub, etc so they don't need to duplicate 98% of the data to change some JSON inside a tarball. If necessary we can make changes to the manifest. |
155b8ac to
a7abc10
Compare
|
LGTM for now. This discussion has gotten too splintered to be useful. |
|
hold on. I'm trying to get the simple line cleanups done. Then I'll take On Thu, Apr 7, 2016 at 12:39 PM, Brandon Philips [email protected]
|
bb25b9c to
c1ff36f
Compare
|
All. I've rebased this PR to be only the initial import of the the specs cited, and opened #12 for the adjustments. |
|
LGTM! |
|
@vbatts Reading back, I wasn't very clear above. I agree that we should have new mediatypes. The spec would have a table declaring which mediatypes are compatible with the docker mediatypes. I don't want to limit the conversation but let's make sure that if a break is done, there is a very good technical reason for doing so. LGTM |
|
I am going to click the button tomorrow morning unless anyone has objections. |
These quasi-entities (which are missing the usual closing semicolon) have been floating around since c22ca79 (serialization: docker v1 image format media type, 2016-04-04, opencontainers#6). Generated with: $ sed -i 's/</</;s/>/>/' $(git grep -l [email protected]) Signed-off-by: W. Trevor King <[email protected]>
Covering all cases turned up by: $ git grep '\*array' runtime-spec does this pretty consistently, and the first such usage appeared in image-spec with f3d0f78 (config: reformat and add optional/required, 2016-09-20, opencontainers#333). And before that, c22ca79 (serialization: docker v1 image format media type, 2016-04-04, opencontainers#6) had landed some: <code>array of strings</code> Signed-off-by: W. Trevor King <[email protected]>
Add artifactType
Per the proposal for this image-spec group, this is bringing in the base for the distributable image format from https://github.com/docker/distribution/blob/bf9f80eaffb0eabc768762bc4ff03ded277ea594/docs/spec/manifest-v2-2.md and https://github.com/docker/docker/blob/99a396902f0ea9d81ef87a683489b2435408f415/image/spec/v1.md