扩展元数据
目录
metadata.json 文件
该文件是扩展的入口点。它包含扩展的元数据,例如
名称、版本和描述。它还包含构建和运行扩展所需的信息。的图片
Docker 扩展必须在其文件系统的根目录中包含一个文件。metadata.json
metadata.json
文件的格式必须为:metadata.json
{
"icon": "extension-icon.svg",
"ui": ...
"vm": ...
"host": ...
}
、 和 部分是可选的,具体取决于给定扩展提供的内容。它们描述要安装的扩展内容。ui
vm
host
UI 部分
该部分定义了一个添加到 Docker Desktop 控制面板的新选项卡。它遵循以下格式:ui
"ui":{
"dashboard-tab":
{
"title":"MyTitle",
"root":"/ui",
"src":"index.html"
}
}
root
指定 UI 代码在扩展镜像文件系统中的文件夹。 指定应在 Extension 选项卡中加载的入口点。src
将来将提供其他 UI 扩展点。
VM 部分
该部分定义了在桌面虚拟机中运行的后端服务。它必须定义一个 或 文件,以指定要在桌面虚拟机中运行的服务。vm
image
docker-compose.yaml
"vm": {
"image":"${DESKTOP_PLUGIN_IMAGE}"
},
使用 时,将为扩展生成默认的 compose 文件。image
${DESKTOP_PLUGIN_IMAGE}
是一个特定的关键字,它允许以一种简单的方式引用打包扩展的镜像。 也可以在此处指定任何其他完整镜像名称。但是,在许多情况下,使用相同的镜像会使 扩展开发更容易。
"vm": {
"composefile": "docker-compose.yaml"
},
例如,具有卷定义的 Compose 文件将如下所示:
services:
myExtension:
image: ${DESKTOP_PLUGIN_IMAGE}
volumes:
- /host/path:/container/path
Host 部分
该部分定义 Docker Desktop 在主机上复制的可执行文件。host
"host": {
"binaries": [
{
"darwin": [
{
"path": "/darwin/myBinary"
},
],
"windows": [
{
"path": "/windows/myBinary.exe"
},
],
"linux": [
{
"path": "/linux/myBinary"
},
]
}
]
}
binaries
定义 Docker Desktop 从扩展镜像复制到主机的二进制文件列表。
path
指定镜像文件系统中的二进制路径。Docker Desktop 负责将这些文件复制到自己的位置,而 JavaScript API 允许调用这些二进制文件。
了解如何调用可执行文件。