Skip to content

Conversation

@vbatts
Copy link
Member

@vbatts vbatts commented Apr 4, 2016

@@ -0,0 +1,573 @@
# Docker Image Specification v1.0.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update

@jonboulle
Copy link
Contributor

actually before going any further, some big open questions:

  • What are the compatibility requirements (if any?) with the existing Docker V2 format - are we considering this a fork?
  • What need is there to preserve language referencing other Docker specifications/technologies, as it does today?

@vbatts vbatts force-pushed the import_docker_formats branch 2 times, most recently from 4a582d8 to bf5c3f6 Compare April 4, 2016 20:52
@vbatts
Copy link
Member Author

vbatts commented Apr 4, 2016

@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
Copy link
Contributor

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?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Contributor

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?

@philips philips closed this Apr 5, 2016
@philips philips reopened this Apr 5, 2016
@philips
Copy link
Contributor

philips commented Apr 5, 2016

@vbatts I closed and reopened this to trigger Travis CI. Seems to work.

@vbatts
Copy link
Member Author

vbatts commented Apr 5, 2016

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

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)

Copy link
Member Author

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.

@philips
Copy link
Contributor

philips commented Apr 6, 2016

@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
Copy link
Contributor

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....

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did commit the two as separate commits first before starting the WIP commit. 70c1c83 and fd4580c

I'm not sure I follow the compatible thought. Could explain that further?

@stevvooe
Copy link
Contributor

stevvooe commented Apr 6, 2016

@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 ociVersion can be added without breaking the format. We can maintain a registry of backwards compatible media types to the docker equivalent.

Does this seem reasonable?

@vbatts vbatts force-pushed the import_docker_formats branch 2 times, most recently from 68a5d22 to 155b8ac Compare April 7, 2016 13:44
@vbatts
Copy link
Member Author

vbatts commented Apr 7, 2016

@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.

@philips
Copy link
Contributor

philips commented Apr 7, 2016

@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.

@vbatts
Copy link
Member Author

vbatts commented Apr 7, 2016

@philips bit-for-bit compatible [with the docker v2.s2] for the initial v1 release [of the oci image spec] ?

@philips
Copy link
Contributor

philips commented Apr 7, 2016

@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.

@vbatts vbatts force-pushed the import_docker_formats branch from 155b8ac to a7abc10 Compare April 7, 2016 15:27
@philips
Copy link
Contributor

philips commented Apr 7, 2016

LGTM for now. This discussion has gotten too splintered to be useful.

@vbatts
Copy link
Member Author

vbatts commented Apr 7, 2016

hold on. I'm trying to get the simple line cleanups done. Then I'll take
the WIP off.

On Thu, Apr 7, 2016 at 12:39 PM, Brandon Philips [email protected]
wrote:

LGTM for now. This discussion has gotten too splintered to be useful.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#6 (comment)

@vbatts vbatts force-pushed the import_docker_formats branch 2 times, most recently from bb25b9c to c1ff36f Compare April 7, 2016 18:28
@vbatts vbatts changed the title [WIP] Import docker formats Initial import of specs Apr 7, 2016
@vbatts
Copy link
Member Author

vbatts commented Apr 7, 2016

All. I've rebased this PR to be only the initial import of the the specs cited, and opened #12 for the adjustments.

@philips
Copy link
Contributor

philips commented Apr 7, 2016

LGTM!

@stevvooe
Copy link
Contributor

stevvooe commented Apr 7, 2016

@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

@philips
Copy link
Contributor

philips commented Apr 8, 2016

I am going to click the button tomorrow morning unless anyone has objections.

@philips philips merged commit 6a4fccc into opencontainers:master Apr 8, 2016
@vbatts vbatts deleted the import_docker_formats branch April 27, 2016 19:23
wking added a commit to wking/image-spec that referenced this pull request Jun 16, 2016
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/&lt/</;s/&gt/>/' $(git grep -l [email protected])

Signed-off-by: W. Trevor King <[email protected]>
wking added a commit to wking/image-spec that referenced this pull request Nov 5, 2016
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]>
sajayantony added a commit to sajayantony/image-spec that referenced this pull request Aug 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants