torchx.workspace¶
状态:测试版
工作区用于在现有镜像之上应用本地更改,以便您可以在远程集群上执行代码。此模块包含工作区实现使用的接口。
这些工作区被定义为 fsspec
路径,其下的目录和文件将用于生成补丁。
示例工作区路径
file://.
当前工作目录
memory://foo-bar/
用于笔记本/编程使用的内存中工作区
- class torchx.workspace.WorkspaceMixin(*args: object, **kwargs: object)[source]¶
注意: (原型) 此接口可能会在未经通知的情况下更改!
一个混合类,可以附加到调度程序,以添加构建工作区的能力。工作区是代码库/项目的本地检出,它构建成一个镜像。工作区调度程序添加了自动重建镜像或生成应用于
Role
的差异补丁的功能,允许用户对应用程序进行本地代码更改,并在运行时反映这些更改(通过新镜像或覆盖补丁)无需手动重建镜像。工作区构建工件的确切语义取决于具体实现。- abstract build_workspace_and_update_role(role: Role, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]]) None [source]¶
根据
img
构建指定workspace
,并更新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.net.cn/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 构建提供了一些额外的构建参数,这些参数可以在 Dockerfile.torchx 中使用。
IMAGE:来自 AppDef 中第一个角色的镜像字符串
WORKSPACE:完整的 workspace 路径
要从构建上下文排除文件,可以使用标准的 .dockerignore 文件。
参见更多
- build_workspace_and_update_role(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
的镜像- 参数:
**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
。- 返回值:
包含 [本地镜像名称,(远程仓库,标签)] 的字典。