Browse Source

DockerImage.run: added args network & env

Fabian Peter Hammerle 5 years ago
parent
commit
4c6f3d7921
1 changed files with 4 additions and 1 deletions
  1. 4 1
      rc.xsh

+ 4 - 1
rc.xsh

@@ -118,7 +118,7 @@ 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, publish_ports=[], caps=[]):
+    def run(self, args=[], name=None, detach=False, env={}, network=None, publish_ports=[], caps=[]):
         params = ['sudo', 'docker', 'run', '--rm']
         if name:
             params.extend(['--name', name])
@@ -126,6 +126,9 @@ class DockerImage:
             params.append('--detach')
         else:
             params.extend(['--interactive', '--tty'])
+        params.extend([a for k, v in env.items() for a in ['--env', '{}={}'.format(k, v)]])
+        if network:
+            params.extend(['--network', network])
         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])