Esempio n. 1
0
    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)
Esempio n. 2
0
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 + ')',
    )