扩展元数据
元数据.json 文件
该metadata.json
文件是您的扩展的入口点。它包含扩展的元数据,例如名称、版本和描述。它还包含构建和运行扩展所需的信息。 Docker 扩展的映像必须metadata.json
在其文件系统的根目录中包含一个文件。
文件的格式metadata.json
必须是:
{
"icon": "extension-icon.svg",
"ui": ...
"vm": ...
"host": ...
}
ui
、vm
和部分host
是可选的,取决于给定扩展提供的内容。它们描述了要安装的扩展内容。
用户界面部分
该ui
部分定义了一个添加到 Docker Desktop 仪表板中的新选项卡。它遵循以下形式:
"ui":{
"dashboard-tab":
{
"title":"MyTitle",
"root":"/ui",
"src":"index.html"
}
}
root
指定扩展图像文件系统中 UI 代码所在的文件夹。
src
指定应在扩展选项卡中加载的入口点。
将来还会提供其他 UI 扩展点。
虚拟机部分
该vm
部分定义了在桌面 VM 内运行的后端服务。它必须定义一个image
或 一个
composefile
值来指定要在桌面 VM 中运行的服务。
"vm": {
"image":"${DESKTOP_PLUGIN_IMAGE}"
},
当您使用 时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": {
"binaries": [
{
"darwin": [
{
"path": "/darwin/myBinary"
},
],
"windows": [
{
"path": "/windows/myBinary.exe"
},
],
"linux": [
{
"path": "/linux/myBinary"
},
]
}
]
}
binaries
定义从扩展映像到主机的 Docker Desktop 二进制文件副本列表。
path
指定图像文件系统中的二进制路径。 Docker Desktop 负责将这些文件复制到自己的位置,并且 JavaScript API 允许调用这些二进制文件。
了解如何 调用可执行文件。