Project

General

Profile

Idea #8568

Updated by Brett Smith about 8 years ago

If you try to run @arv keep docker@ today on a host running Docker 1.10+, you'll get an exception when the tool tries to find a specific file in the generated tar file: 

 <pre>$ arv keep docker --project-uuid=qr1hi-j7d0g-rerv400sudof0mn name 
 1474M / 1474M 100.0%  
 Collection saved as 'Docker image name:latest sha256:... (2)' 
 qr1hi-4zz18-k4b79jr1uamnila 
 Traceback (most recent call last): 
   File "/usr/local/bin/arv-keepdocker", line 5, in <module> 
     pkg_resources.run_script('arvados-python-client==0.1.20160128214108', 'arv-keepdocker') 
   File "/usr/local/lib/python2.7/dist-packages/pkg_resources.py", line 517, in run_script 
     self.require(requires)[0].run_script(script_name, ns) 
   File "/usr/local/lib/python2.7/dist-packages/pkg_resources.py", line 1436, in run_script 
     exec(code, namespace, namespace) 
   File "/usr/local/lib/python2.7/dist-packages/arvados_python_client-0.1.20160128214108-py2.7.egg/EGG-INFO/scripts/arv-keepdocker", line 4, in <module> 
     main() 
   File "/usr/local/lib/python2.7/dist-packages/arvados_python_client-0.1.20160128214108-py2.7.egg/arvados/commands/keepdocker.py", line 401, in main 
     json_file = image_tar.extractfile(image_tar.getmember(image_hash + '/json')) 
   File "/usr/lib/python2.7/tarfile.py", line 1800, in getmember 
     raise KeyError("filename %r not found" % name) 
 KeyError: "filename 'sha256:...d2b6/json' not found"</pre> 

 file.    This happens because Docker changed the image tar format in Docker 1.10.    Recognize and correctly upload images generated by Docker 1.10.

Back