Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Latest commit dbfae14 May 19, 2017 History
Instead of repeating the conditions, just make the linkage
more clear.  Now the chain is:

1. Bundles REQUIRE a config.json which is a bundle artifact.
2. If that config.json has a root.path entry (as specified in, then add the referenced directory to the set of bundle
   artifacts.  The requirements include "If defined, a
   directory MUST exist at the path declared by the field".
3. Apply the "MUST all be present in a single directory" condition to
   all bundle artifacts.  I don't like that direct-child restriction
   [1], but I'm not touching it in this commit.

So these are the same requirements as before this commit, but with
less redundancy and fewer words.

[1]: #469

Signed-off-by: W. Trevor King <>
11 contributors

Users who have contributed to this file

@wking @jonboulle @vbatts @philips @RobDolinMS @Ephemera @mlaventure @coolljt0725 @laijs @lowenna @hqhq

Filesystem Bundle

Container Format

This section defines a format for encoding a container as a filesystem bundle - a set of files organized in a certain way, and containing all the necessary data and metadata for any compliant runtime to perform all standard operations against it. See also MacOS application bundles for a similar use of the term bundle.

The definition of a bundle is only concerned with how a container, and its configuration data, are stored on a local filesystem so that it can be consumed by a compliant runtime.

A Standard Container bundle contains all the information needed to load and run a container. This includes the following artifacts:

  1. config.json: contains configuration data. This REQUIRED file MUST reside in the root of the bundle directory and MUST be named config.json. See config.json for more details.

  2. container's root filesystem: the directory referenced by root.path, if that property is set in config.json.

When supplied, while these artifacts MUST all be present in a single directory on the local filesystem, that directory itself is not part of the bundle. In other words, a tar archive of a bundle will have these artifacts at the root of the archive, not nested within a top-level directory.