Ejemplo n.º 1
0
def start_docker(slug, ref_extra_volume=None):
    command = "{} {} 1 2 {}".format(NAME_CLI_INTERFACE, conf.console_server_port, str(conf.log_level))
    client = DockerClient()
    folder = Folder(slug)

    logging.info('Verification: {}'.format(folder.verification_folder_path()))

    copy_tree(folder.verification_folder_path(), folder.container_verification_folder_path())
    for root, dirs, files in os.walk(folder.container_verification_folder_path()):
        for momo in dirs:
            os.chmod(os.path.join(root, momo), 0o777)
        for momo in files:
            os.chmod(os.path.join(root, momo), 0o777)

    volumes={
            tmp_folder(folder.compiled_referee_folder_path()): {
                    'bind': '/opt/mission/src',
                    'mode': 'rw'
                },
            tmp_folder(folder.compiled_envs_folder_path()): {
                    'bind': '/opt/mission/envs',
                    'mode': 'rw'
                }
        }

    if ref_extra_volume is not None:
        volumes.update(ref_extra_volume)

    return client.run(slug, command, 
        volumes=volumes,
        network_mode=NAME_CLI_NETWORK,
        name='mission__' + slug,
        detach=True)
Ejemplo n.º 2
0
def start_docker(slug):
    if is_linux():
        local_ip = settings.DOCKER_LINUX_IP
    else:
        local_ip = socket.gethostbyname(socket.gethostname())

    command = "{} {} 1 2 {}".format(local_ip, settings.CONSOLE_SERVER_PORT,
                                    str(logging.root.level))
    docker_client = DockerClient()
    folder = Folder(slug)
    copy_tree(folder.verification_folder_path(),
              folder.container_verification_folder_path())
    docker_container = docker_client.run(
        slug,
        command,
        volumes={
            '/opt/mission/src': folder.compiled_referee_folder_path(),
            '/opt/mission/envs': folder.compiled_envs_folder_path()
        })
    for line in docker_container.logs(stream=True, logs=True):
        try:
            logging.info(line)
        except Exception as e:
            logging.error(e, exc_info=True)
            pass
Ejemplo n.º 3
0
def start_docker(slug):
    if is_linux():
        local_ip = settings.DOCKER_LINUX_IP
    else:
        local_ip = socket.gethostbyname(socket.gethostname())

    command = "{} {} 1 2 {}".format(local_ip, settings.CONSOLE_SERVER_PORT, str(logging.root.level))
    docker_client = DockerClient()
    folder = Folder(slug)
    copy_tree(folder.verification_folder_path(), folder.container_verification_folder_path())
    docker_container = docker_client.run(slug, command, volumes={
        '/opt/mission/src': folder.compiled_referee_folder_path(),
        '/opt/mission/envs': folder.compiled_envs_folder_path()
    })
    for line in docker_container.logs(stream=True, logs=True):
        try:
            logging.info(line)
        except Exception as e:
            logging.error(e, exc_info=True)
            pass