torchx.工作空间¶
状态:测试版
工作区用于在现有镜像的基础上应用本地更改,以便您可以在远程集群上执行代码。此模块包含工作区实现所使用的接口。
这些工作空间被定义为fsspec路径,其下的目录和文件将用于生成补丁。
示例工作区路径:
file://.当前工作目录
memory://foo-bar/一个用于笔记本/编程使用的内存工作区
- class torchx.workspace.WorkspaceMixin(*args: object, **kwargs: object)[source]¶
注意:(原型)此接口可能会在没有通知的情况下更改!
一个可以附加到调度程序的混合功能,增加了构建工作空间的能力。工作空间是代码库/项目的本地检出,构建成镜像。工作空间调度程序增加了自动重建镜像或生成差异补丁的能力,这些补丁应用于
Role,允许用户对应用程序进行本地代码更改,并在运行时反映这些更改(通过新镜像或覆盖补丁),而无需手动重建镜像。工作空间构建产物的确切语义取决于实现。- abstract build_workspace_and_update_role(role: 角色, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]]) None[source]¶
构建指定的
workspace相对于img,并更新role以反映构建的工作空间工件。在最简单的情况下,此方法构建一个新镜像并更新角色的镜像。某些(更高效的)实现构建增量差异补丁,这些补丁覆盖在角色的镜像之上。注意:此方法会改变传入的
role。
- torchx.workspace.walk_workspace(fs: AbstractFileSystem, path: str, ignore_name: str = '.torchxignore') Iterable[Tuple[str, Iterable[str], Mapping[str, Mapping[str, object]]]][source]¶
walk_workspace 遍历文件系统路径并应用通过
ignore_name指定的忽略规则。 这遵循.dockerignore的规则。 https://docs.docker.com/engine/reference/builder/#dockerignore-file
torchx.workspace.docker_workspace¶
- class torchx.workspace.docker_workspace.DockerWorkspaceMixin(*args: object, docker_client: Optional[DockerClient] = None, **kwargs: object)[source]¶
DockerWorkspaceMixin 将从工作区构建修补后的 docker 镜像。这些修补后的镜像是 docker 镜像,可以通过 docker 守护进程在本地使用,或者使用辅助方法推送到远程仓库以用于远程作业。
这需要本地运行一个docker守护进程,并且对于远程推送需要通过
docker login进行身份验证到这些仓库。如果工作区中存在
Dockerfile.torchx文件,则将使用该文件来构建容器。docker build 提供了一些额外的构建参数,可以在 Dockerfile.torchx 中使用:
IMAGE: 来自AppDef中第一个Role的图像字符串
工作区:完整的工作区路径
要从构建上下文中排除文件,您可以使用标准的.dockerignore文件。
查看更多:
- build_workspace_and_update_role(role: 角色, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]]) None[source]¶
使用
role的镜像作为基础镜像构建一个新的docker镜像,并使用这个新构建的docker镜像ID更新role的镜像- Parameters:
role – 该角色的镜像(Docker 镜像)将用作基础镜像
workspace – 一个fsspec路径,指向一个包含要覆盖内容的目录
- dryrun_push_images(app: AppDef, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]]) Dict[str, Tuple[str, str]][source]¶
_update_app_images 将提供的
AppDef中的本地 Docker 镜像(通过sha256:...标识)替换为它们将被上传到的远程路径,并返回本地名称到远程名称的映射。push必须在启动作业之前使用返回的映射调用。- Returns:
一个字典,包含[本地镜像名称, (远程仓库, 标签)]。