diff --git a/dockerize/dockerize.py b/dockerize/dockerize.py index 1042e58..96340ed 100644 --- a/dockerize/dockerize.py +++ b/dockerize/dockerize.py @@ -39,11 +39,15 @@ def __init__(self, runtime=None, buildcmd=None, symlinks=SymlinkOptions.PRESERVE, + envs=None, + workdir=None, build=True): self.docker = {} self.docker['runtime'] = runtime if runtime else 'docker' self.docker['buildcmd'] = buildcmd if buildcmd else 'build' + self.docker['envs'] = envs if envs else [] + self.docker['workdir'] = workdir if cmd: self.docker['cmd'] = json.dumps(shlex.split(cmd)) @@ -230,7 +234,7 @@ def copy_files(self): self.copy_file(srcitem, dst) def build_image(self): - cmd = [self.docker['runtime'], self.docker['buildcmd']] + cmd = [self.docker['runtime']] + shlex.split(self.docker['buildcmd']) if 'tag' in self.docker: cmd += ['-t', self.docker['tag']] cmd += [self.targetdir] diff --git a/dockerize/main.py b/dockerize/main.py index 9a2f1f4..cc75652 100644 --- a/dockerize/main.py +++ b/dockerize/main.py @@ -46,6 +46,15 @@ def parse_args(): default=[], help='Add file to image at ') + parser.add_argument('--env', + action='append', + default=[], + help='Add ENV={arg} in Dockerfile') + + parser.add_argument('--workdir', + default=None, + help='Add WORKDIR={arg} in Dockerfile') + parser.add_argument('--symlinks', '-L', default='copy-unsafe', help='One of preserve, copy-unsafe, ' @@ -114,7 +123,9 @@ def main(): tag=args.tag, targetdir=args.output_dir, build=not args.no_build, - symlinks=args.symlinks) + symlinks=args.symlinks, + envs=args.env, + workdir=args.workdir) for path in args.paths: app.add_file(path) diff --git a/dockerize/templates/Dockerfile b/dockerize/templates/Dockerfile index e33b102..d9cc88a 100644 --- a/dockerize/templates/Dockerfile +++ b/dockerize/templates/Dockerfile @@ -7,3 +7,11 @@ ENTRYPOINT {{docker.entrypoint}} {% if docker.cmd -%} CMD {{docker.cmd}} {% endif -%} + +{% if docker.workdir is not none %} +WORKDIR {{docker.workdir}} +{% endif %} + +{% for env in docker.envs %} +ENV {{env}} +{% endfor %}