<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def __setup_native_run(self):
        # These options are appended to mounted volume arguments
        # NOTE: This tells Docker to re-label the directory for compatibility
        # with SELinux. See `man docker-run` for more information.
        self.vol_opts = ['z']


        # Pass variables to scubainit
        self.add_env('SCUBAINIT_UMASK', '{:04o}'.format(get_umask()))

        if not self.as_root:
            self.add_env('SCUBAINIT_UID', os.getuid())
            self.add_env('SCUBAINIT_GID', os.getgid())

        if self.verbose:
            self.add_env('SCUBAINIT_VERBOSE', 1)


        # Copy scubainit into the container
        # We make a copy because Docker 1.13 gets pissed if we try to re-label
        # /usr, and Fedora 28 gives an AVC denial.
        scubainit_cpath = self.copy_scubadir_file('scubainit', self.scubainit_path)

        # Hooks
        for name in ('root', 'user', ):
            self.__generate_hook_script(name)

        # allocate TTY if scuba's output is going to a terminal
        # and stdin is not redirected
        if sys.stdout.isatty() and sys.stdin.isatty():
            self.add_option('--tty')

        # Process any aliases
        try:
            context = self.config.process_command(self.user_command)
        except ConfigError as cfgerr:
            raise ScubaError(str(cfgerr))

        if self.image_override:
            context.image = self.image_override

        '''
        Normally, if the user provides no command to "docker run", the image's
        default CMD is run. Because we set the entrypiont, scuba must emulate the
        default behavior itself.
        '''
        if not context.script:
            # No user-provided command; we want to run the image's default command
            verbose_msg('No user command; getting command from image')
            default_cmd = get_image_command(context.image)
            if not default_cmd:
                raise ScubaError('No command given and no image-specified command')
            verbose_msg('{} Cmd: "{}"'.format(context.image, default_cmd))
            context.script = [shell_quote_cmd(default_cmd)]

        # Make scubainit the real entrypoint, and use the defined entrypoint as
        # the docker command (if it exists)
        self.add_option('--entrypoint={}'.format(scubainit_cpath))

        self.docker_cmd = []
        if self.entrypoint_override is not None:
            # --entrypoint takes precedence
            if self.entrypoint_override != '':
                self.docker_cmd = [self.entrypoint_override]
        elif context.entrypoint is not None:
            # then .scuba.yml
            if context.entrypoint != '':
                self.docker_cmd = [context.entrypoint]
        else:
            ep = get_image_entrypoint(context.image)
            if ep:
                self.docker_cmd = ep

        # The user command is executed via a generated shell script
        with self.open_scubadir_file('command.sh', 'wt') as f:
            self.docker_cmd += ['/bin/sh', f.container_path]
            writeln(f, '#!/bin/sh')
            writeln(f, '# Auto-generated from scuba')
            writeln(f, 'set -e')
            for cmd in context.script:
                writeln(f, cmd)

        self.context = context