def __call__(self, image, cmd, work_dir=None, remove=True, name=None): container_username = '******' container_home = '/home/' + container_username basic_docker_args = [ '--env=PATH=' + container_home + '/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', '--env=HOME=' + container_home, '--env=SHELL=' + os.environ.get('SHELL', ''), '--env=TERM=' + os.environ.get('TERM', ''), '--env=TARGET_USER='******'--env=TARGET_UID=' + str(os.getuid()), '--env=TARGET_GID=' + str(os.getgid()), '--volume={}:{}:ro'.format(resource('hostuser_entrypoint.sh'), '/entrypoint'), ] if self.home_volume is None: basic_docker_args.append('--volume=' + container_home) else: basic_docker_args.append('--volume={}:{}:rw'.format(self.home_volume, container_home)) if self.allow_sudo: basic_docker_args.append('--env=ALLOW_SUDO=1') if name is not None: basic_docker_args.append('--name={}'.format(name)) runner = Runner( basic_docker_args + self.docker_args, entrypoint = '/entrypoint', ) return runner(image, cmd, work_dir, remove)
def debian_cleanup_wrapper(cmd): wrapper = 'debian_cleanup_wrapper.sh' return Cmd( ['./' + wrapper] + cmd.cmd, cmd.context.added(wrapper, resource(wrapper)), cmd.comment + ' (wrapped ' + wrapper + ')', )