Skip to content
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

JSON schema for the serialization formats #56

Closed
4 tasks done
vbatts opened this issue May 2, 2016 · 11 comments
Closed
4 tasks done

JSON schema for the serialization formats #56

vbatts opened this issue May 2, 2016 · 11 comments

Comments

@vbatts
Copy link
Member

vbatts commented May 2, 2016

Carrying over from #7 but specifically for the serialization formats.

@philips
Copy link
Contributor

philips commented May 5, 2016

@vbatts deadbeef.json?

@vbatts
Copy link
Member Author

vbatts commented May 5, 2016

poor name for a hexidecimal... i'll change it

@philips
Copy link
Contributor

philips commented May 5, 2016

@vbatts this is referring to the "json" next to layer.tar?

@vbatts
Copy link
Member Author

vbatts commented May 5, 2016

@philips nope. It's part of the next generation single config file, post docker-1.10 format.

vbatts@bananaboat ~ (master) $ docker pull docker.io/alpine:latest
latest: Pulling from library/alpine

420890c9e918: Pull complete 
Digest: sha256:9cacb71397b640eca97488cf08582ae4e4068513101088e9f96c9814bfda95e0
Status: Downloaded newer image for alpine:latest
vbatts@bananaboat ~ (master) $ docker save docker.io/alpine:latest | tar tv
-rw-r--r-- 0/0            1145 2016-04-01 16:53 d7a513a663c1a6dcdba9ed832ca53c02ac2af0c333322cd6ca92936d1d9917ac.json
drwxr-xr-x 0/0               0 2016-04-01 16:53 eeb44f9ddc5f4336a1282f8ceef0ab934442de7b57472cdb5b058fd0926b3475/
-rw-r--r-- 0/0               3 2016-04-01 16:53 eeb44f9ddc5f4336a1282f8ceef0ab934442de7b57472cdb5b058fd0926b3475/VERSION
-rw-r--r-- 0/0             934 2016-04-01 16:53 eeb44f9ddc5f4336a1282f8ceef0ab934442de7b57472cdb5b058fd0926b3475/json
-rw-r--r-- 0/0         5040640 2016-04-01 16:53 eeb44f9ddc5f4336a1282f8ceef0ab934442de7b57472cdb5b058fd0926b3475/layer.tar
-rw-r--r-- 0/0             202 1969-12-31 19:00 manifest.json
-rw-r--r-- 0/0              89 1969-12-31 19:00 repositories

see also #54 (comment)

@stevvooe
Copy link
Contributor

stevvooe commented May 5, 2016

Probably should not carry repositories and json, as they are for pre-1.10.

@vbatts
Copy link
Member Author

vbatts commented May 10, 2016

my big issue is that this flattens layers. Images need to be a federated DAG. This <sha256>.json/manifest.json layout requires condensing the parent config into the image.

Unless these combined layout can themselves also be layered.
But then there is no point in having multiple tar layers.

@stevvooe
Copy link
Contributor

@vbatts How does this flatten layers? What we want to avoid here is having the DAG degrade to a linked list.

We can still federate with this approach. We lose the intermediary configs, but it is surprising when a single image carries all intermediary configurations. If one does want to ship the intermediaries, each intermediate can be include in the manifest.

@vbatts
Copy link
Member Author

vbatts commented May 13, 2016

@stevvooe I understand avoiding the linked list. Perhaps it will be worth the exercise to work out the example of having a manifest, that references two of application/vnd.oci.image.serialization.combined.v1+json types. This is something that appc *.aci allows and would be powerful to bring in here.

@stevvooe
Copy link
Contributor

I'm not sure why this requires another manifest type. Just reference each root config in the tag index. There is no need to maintain the linked the list -- this can be recovered by identifying common layers. aci suffers from the same "parent" degrading to linked list problem and it should be avoided for OCI.

@vbatts
Copy link
Member Author

vbatts commented May 15, 2016

Oh sorry. I wasn't thinking of another manifest type, but rather an example
of a manifest that can allow more than one of the combined types as
objects, so those independent images do not have to be squashed and lose
the digest of their parentage.

On Fri, May 13, 2016 at 3:34 PM, Stephen Day notifications@github.com
wrote:

I'm not sure why this requires another manifest type. Just reference each
root config in the tag index. There is no need to maintain the linked the
list -- this can be recovered by identifying common layers. aci suffers
from the same "parent" degrading to linked list problem and it should be
avoided for OCI.


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

@vbatts
Copy link
Member Author

vbatts commented Jun 1, 2016

So this is all together done or N/A
Only this notion of descriptor is needed now. See #92

@vbatts vbatts closed this as completed Jun 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants