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)
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
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