Browse Source

DockerImage.run(): added arg 'volumes'

Fabian Peter Hammerle 5 years ago
parent
commit
981df915f0
1 changed files with 3 additions and 1 deletions
  1. 3 1
      rc.xsh

+ 3 - 1
rc.xsh

@@ -118,7 +118,8 @@ class DockerImage:
         repo_digest, = re.search(rb'^Digest: (sha\S+:\S+)$', out.getvalue(), re.MULTILINE).groups()
         return cls('{}@{}'.format(image, repo_digest.decode()))
 
-    def run(self, args=[], name=None, detach=False, env={}, network=None, publish_ports=[], caps=[]):
+    def run(self, args=[], name=None, detach=False, env={},
+            network=None, publish_ports=[], volumes=[], caps=[]):
         params = ['sudo', 'docker', 'run', '--rm']
         if name:
             params.extend(['--name', name])
@@ -129,6 +130,7 @@ class DockerImage:
         params.extend([a for k, v in env.items() for a in ['--env', '{}={}'.format(k, v)]])
         if network:
             params.extend(['--network', network])
+        params.extend([a for v in volumes for a in ['--volume', ':'.join(v)]])
         params.extend('--publish=' + ':'.join([str(a) for a in p]) for p in publish_ports)
         params.extend(['--security-opt=no-new-privileges', '--cap-drop=all'])
         params.extend(['--cap-add={}'.format(c) for c in caps])