3 The "mounts" hash is the primary mechanism for adding data to the container at runtime (beyond what is already in the container image).
5 Each value of the "mounts" hash is itself a hash, whose "kind" key determines the handler used to attach data to the container.
7 table(table table-bordered table-condensed).
8 |_. Mount type|_. Kind|_. Description|_. Examples|
9 |Arvados data collection|@collection@|@"portable_data_hash"@ _or_ @"uuid"@ _may_ be provided. If not provided, a new collection will be created. This is useful when @"writable":true@ and the container's @output_path@ is (or is a subdirectory of) this mount target.
10 @"writable"@ may be provided with a @true@ or @false@ to indicate the path must (or must not) be writable. If not specified, the system can choose.
11 @"path"@ may be provided, and defaults to @"/"@.
12 At container startup, the target path will have the same directory structure as the given path within the collection. Even if the files/directories are writable in the container, modifications will _not_ be saved back to the original collections when the container ends.|<pre><code>{
21 |Git tree|@git_tree@|One of { @"git-url"@, @"repository_name"@, @"uuid"@ } must be provided.
22 One of { @"commit"@, @"revisions"@ } must be provided.
23 "path" may be provided. The default path is "/".
24 At container startup, the target path will have the source tree indicated by the given revision. The @.git@ metadata directory _will not_ be available: typically the system will use @git-archive@ rather than @git-checkout@ to prepare the target directory.
25 - If a value is given for @"revisions"@, it will be resolved to a set of commits (as desribed in the "ranges" section of git-revisions(1)) and the container request will be satisfiable by any commit in that set.
26 - If a value is given for @"commit"@, it will be resolved to a single commit, and the tree resulting from that commit will be used.
27 - @"path"@ can be used to select a subdirectory or a single file from the tree indicated by the selected commit.
28 - Multiple commits can resolve to the same tree: for example, the file/directory given in @"path"@ might not have changed between commits A and B.
29 - The resolved mount (found in the Container record) will have only the "kind" key and a "blob" or "tree" key indicating the 40-character hash of the git tree/blob used.|<pre><code>{
31 "uuid":"zzzzz-s0uqq-xxxxxxxxxxxxxxx",
36 "uuid":"zzzzz-s0uqq-xxxxxxxxxxxxxxx",
37 "commit_range":"bugfix^..master",
38 "path":"/crunch_scripts/grep"
40 |Temporary directory|@tmp@|@"capacity"@: capacity (in bytes) of the storage device.
41 @"device_type"@ (optional, default "network"): one of @{"ram", "ssd", "disk", "network"}@ indicating the acceptable level of performance.
42 At container startup, the target path will be empty. When the container finishes, the content will be discarded. This will be backed by a storage mechanism no slower than the specified type.|<pre><code>{
44 "capacity":100000000000
48 "capacity":1000000000,
51 |Keep|@keep@|Expose all readable collections via arv-mount.
52 Requires suitable runtime constraints.|<pre><code>{
55 |Mounted file or directory|@file@|@"path"@: absolute path (inside the container) of a file or directory that is (or is inside) another mount target.
56 Can be used for "stdin" and "stdout" targets.|<pre><code>{
58 "path":"/mounted_tmp/a.out"
60 |JSON document|@json@|A JSON-encoded string, array, or object.|<pre>{
62 "content":{"foo":"bar"}