-
Notifications
You must be signed in to change notification settings - Fork 571
Dependencies/layers? #57
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
Comments
@derekchiang Not really. In this initial spec we are only dealing with a single container so specifying dependencies are out of scope at this point. |
@derekchiang presently we are starting with the foundation of runtime. As the project moves forward the notion of dependencies and layering will be covered. There are logical dependencies needed to build on, like hashing and standard layering. Where as the current runtime ( |
On Wed, Jul 22, 2015 at 10:48:29AM -0700, Vincent Batts wrote:
Can we keep distribution and layering in higher-level probjects, and |
@wking correct. That's what I meant by it being orthogonal. If the rootfs of the runtime is a layered or whatever, that ought not matter for this runtime. Were we to have any specifications around "supported layering", that would be outside of the runtime specification. |
👍 to keeping layers out of this spec, though it'd be great for somebody to make a project capable of instantiating layers from Docker. Can anybody point me to some documentation around how Docker save its layers? (I'd like to keep Docker around as, essentially, a package manager for downloading images for use with runc + some layering tool.) Alternately, is there a package manager that just downloads layers from the Docker repository (to, say, a given object store) and saves a basic manifest of what layers make up what images? How difficult would it be to create such a tool? And what solutions does Docker implement for layering? Is there a |
Also, looking at the sample JSON in https://github.com/opencontainers/runc, wouldn't it be possible to do this with a series of |
On Fri, Aug 14, 2015 at 09:39:24AM -0700, Stuart P. Bentley wrote:
The v2 registry does this with the manifest's fsLayers 1, and you |
On Fri, Aug 14, 2015 at 09:55:54AM -0700, Stuart P. Bentley wrote:
Yeah, you can probably write a tool to translate the Docker manifest |
But, like, Docker works on systems that don't support AUFS mounts, right? So there should be something container users can point to, in the best practices, that explains how you can do things like layering in all the ways Docker does it. |
Also, per the discussion above, is it fair to say that the best practice for containers is to do your layering outside of the container's JSON config manifest, listing only the root and system-internal mounts (like cgroups) in the manifest? Moreover, where should the line be drawn between mounts handled by the host environment and mounts handled by the manifest? How much are manifests meant to be portable? |
On Fri, Aug 14, 2015 at 03:21:29PM -0700, Stuart P. Bentley wrote:
Doing a bit of layering inside your container can help with things
|
I would there to be general practices available around layering, but for now the OCI is expecting of a rootfs. The setup that provides that rootfs may utilize layering (e.g. docker). There may be a form of asserting the representation of a rootfs, so that we differentiate from how that rootfs was distributed. That way docker layering can produce a validatable rootfs with layering, or an exported tarball of that flattened rootfs. Same representation, vastly different arrivals. The appc/spec has a semantic for |
This has been discussed and layering, while some tooling may implement an on-disk solution for layering (see docker graph), otherwise this notion is a distributable archive consideration. See #302 as a tracker. In #293 it is proposed to have a notion of layered filesystems, that have whiteout/blackout marking so the distributed layers can be applied correctly. But as for the runtime itself (i.e. runc), only is concerned with the resulting on disk bundle (configuration file + rootfs). |
As of right now, it doesn't appear that the spec contains any notion of dependencies/layers; that is, something akin to the base image (
FROM
) in Docker, or dependencies in ACI. Is this something that will be added to the spec eventually?The text was updated successfully, but these errors were encountered: