扩展元数据

元数据.json 文件

metadata.json文件是您的扩展的入口点。它包含扩展的元数据,例如名称、版本和描述。它还包含构建和运行扩展所需的信息。 Docker 扩展的映像必须metadata.json在其文件系统的根目录中包含一个文件。

文件的格式metadata.json必须是:

{
    "icon": "extension-icon.svg",
    "ui": ...
    "vm": ...
    "host": ...
}

uivm和部分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 允许调用这些二进制文件。

了解如何 调用可执行文件