Project

General

Profile

Feature #8015

Updated by Tom Clegg about 8 years ago

Implement mount points in @crunch-run@ as described here: https://dev.arvados.org/projects/arvados/wiki/Containers_API#Mount-types 

 h2. Scope 

 Support the following mount types: 
 * kind=collection, writable=false, uuid=X 
 * kind=collection, writable=false, portable_data_hash=X 
 * kind=collection, writable=true, no uuid or portable_data_hash 
 * kind=tmp, device_type={disk or network} (for now this can be a plain docker data volume, although at some point we might need something like a loopback device so we can reserve/limit capacity) 

 Note the "kind=collection, writable=true, and uuid-or-portable_data_hash provided" feature is not included here because it requires additional support from arv-mount that isn't implemented yet. 

 h2. Approach 

 # Before starting the docker container, build an arv-mount command line and run arv-mount in a new temporary directory 
 # Check out any git repositories that are specified to a new temporary directory 
 # Add host bind mounts to the container, container creation mapping the arv-mount and git temp directories to the desired targets inside the container. 
 # Run the docker container, wait for it to finish 
 # If the container used one of its mount points as an output directory, record its output (i.e., get the manifest_text from the JSON object in the magic @.arvados#collection@ file, create a new collection, and record the resulting PDH) 
 # Run "fusermount -u" to unmount the arv-mount directory 
 # Delete temporary directories 

Back