-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtv-try
executable file
·48 lines (40 loc) · 1.44 KB
/
tv-try
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python3
"""This script launches a python script using otaviog/tensorviz:try
docker environment. Requires Linux and NVidia docker.
"""
import os
import argparse
import grp
from pathlib import Path
def _main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--mapping-dir")
parser.add_argument("-v", "--verbose", action="store_true",
help="Shows docker command")
parser.add_argument("script", help="The target python script")
parser.add_argument("rest", nargs='*')
args = parser.parse_args()
docker_grp = grp.getgrnam('docker')[2]
pwd = Path(".").absolute()
cmd = """docker run --gpus all --volume={pwd}:/exec
--user={uid}:{gid}
--env="DISPLAY"
-e NVIDIA_DRIVER_CAPABILITIES=all
-e XAUTHORITY
--volume="/etc/group:/etc/group:ro"
--volume="/etc/passwd:/etc/passwd:ro"
--volume="/etc/shadow:/etc/shadow:ro"
--volume="/etc/sudoers.d:/etc/sudoers.d:ro"
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw"
--workdir=/exec
-it otaviog/tensorviz:latest /exec/{script} {args}""".format(
pwd=pwd, uid=os.getuid(),
gid=docker_grp,
script=args.script,
args=" ".join(args.rest))
cmd = " ".join(cmd.split())
if args.verbose:
print(cmd)
os.system(cmd)
if __name__ == '__main__':
_main()