打包并发布您的扩展程序

本页面包含有关如何打包和分发扩展的附加信息。

打包您的扩展

Docker 扩展以 Docker 镜像的形式打包。整个扩展运行时环境,包括用户界面、后端服务(主机或虚拟机)以及任何必要的Binaries,都必须包含在扩展镜像中。 每个扩展镜像必须在其文件系统的根目录下包含一个 metadata.json 文件,用于定义扩展的内容

Docker 镜像必须包含若干个 镜像标签,用于提供有关该扩展的信息。请参阅如何使用 扩展标签来提供扩展的概览信息。

要打包和发布扩展,您需要构建一个 Docker 镜像(docker build),并将该镜像推送到 Docker Hubdocker push),并使用特定的标签,以便管理扩展的版本。

发布您的扩展程序

Docker 镜像标签必须遵循语义化版本(semver)规范,以便能够获取该扩展的最新版本,并确定是否有可用更新。请参阅 semver.org 以了解更多关于语义化版本的信息。

扩展镜像必须是多架构镜像,以便用户可以在 ARM/AMD 硬件上安装扩展。这些多架构镜像可包含 ARM/AMD 特定的Binaries。Mac 用户将根据其硬件架构自动使用正确的镜像。 在主机上安装Binaries的扩展还必须在同一扩展镜像中提供 Windows Binaries。请参阅如何为您的扩展构建多架构镜像

您可以实现扩展,而无需对代码仓库施加任何限制。Docker在使用扩展时,无需访问代码仓库。此外,您可以独立管理扩展的新版本,而无需依赖 Docker Desktop 的发布周期。

新版本发布与更新

您可以通过将带有新标签的新镜像推送到 Docker Hub 来发布 Docker 扩展的新版本。

推送到与扩展对应的镜像仓库中的任何新镜像,都定义了该扩展的一个新版本。镜像标签用于标识版本号。扩展版本必须遵循语义化版本规范(semver),以便于理解和比较各版本。

Docker Desktop 会扫描市场中发布扩展的列表以检查新版本,并在用户可升级特定扩展时向其发出通知。目前,不属于市场(Marketplace)的扩展不提供自动更新通知。

用户可在不更新 Docker Desktop 的前提下,下载并安装任意扩展的较新版本。

扩展 API 依赖项

扩展必须指定其依赖的扩展 API 版本。Docker Desktop 会检查扩展所需的版本,并仅推荐安装与当前已安装的 Docker Desktop 版本兼容的扩展。用户可能需要更新 Docker Desktop 才能安装最新可用的扩展。

扩展镜像标签必须指定该扩展所依赖的 API 版本。这使得 Docker Desktop 能够在无需预先下载完整扩展镜像的情况下,检查扩展镜像的新版本。

扩展模块许可及扩展 SDK

The Docker Extension SDK 根据 Apache 2.0 许可证授权,可免费使用。

对于每个扩展应如何进行授权,不存在任何限制,这由您在创建新扩展时自行决定。