torchx.workspace¶
状态:测试版
工作空间用于在现有图像的基础上应用本地更改,以便您可以在远程集群上执行代码。此模块包含由工作空间实现使用的接口。
这些工作区被定义为一个 fsspec 路径,其中的目录和文件将用于生成补丁。
示例工作空间路径:
file://.the current working directory
memory://foo-bar/an in-memory workspace for notebook/programmatic usage
- class torchx.workspace.WorkspaceMixin(*args: object, **kwargs: object)[source]¶
注意:(原型)此界面可能随时更改!
一个可以附加到Scheduler的混入,可以添加构建工作区的能力。工作区是代码库/项目本地检查点,用于构建成镜像。工作区调度器增加了自动重建镜像或生成应用于
Role的差异补丁的能力,允许用户对应用程序进行本地代码更改,并在运行时通过新镜像或覆盖补丁反映这些更改。 工作区构建产物的确切语义取决于实现。- abstract build_workspace_and_update_role(role: Role, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str]]]]) None[source]¶
构建指定的
workspace与img相关,并更新role以反映构建的工作空间 artifacts。 在最简单的情况下,此方法构建一个新的镜像并更新角色的镜像。某些(更高效)实现构建增量差异补丁,覆盖在角色的镜像之上。注意:此方法会修改传递的
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 构建提供了额外的构建参数,可以在 Dockerfile 中使用。
图像:应用程序定义中的第一个角色的图片字符串
工作区:完整的工作区路径
为了排除文件从构建上下文,您可以使用标准 .dockerignore 文件。
查看更多:
- build_workspace_and_update_role(role: Role, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str]]]]) None[source]¶
使用
role的镜像作为基础镜像构建一个新的Docker镜像,并将此新构建的Docker镜像ID更新到role的镜像中- Parameters:
角色 – 用于作为基础镜像的图像(一个Docker镜像)
工作区 – fsspec 路径到一个包含要覆盖内容的目录
- dryrun_push_images(app: AppDef, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str]]]]) Dict[str, Tuple[str, str]][source]¶
_update_app_images 替换本地 Docker 图像(通过
sha256:...标识)在提供的AppDef中的远程路径,该路径将被上传,并返回一个映射,表示本地到远程的名称。push必须在启动任务之前调用返回的映射。- Returns:
一个字典,键是本地图像名称,值是一个元组(远程仓库名,标签)。