擴充套件元資料

metadata.json 檔案

metadata.json 檔案是擴充套件的入口點。它包含擴充套件的元資料,例如名稱、版本和說明。它還包含構建和執行擴充套件所需的資訊。Docker 擴充套件的映象必須在其檔案系統的根目錄中包含一個 metadata.json 檔案。

metadata.json 檔案的格式必須為

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

uivmhost 部分是可選的,具體取決於給定擴充套件提供的內容。它們描述要安裝的擴充套件內容。

UI 部分

ui 部分定義了一個新選項卡,該選項卡將新增到 Docker Desktop 中的儀表板。它遵循以下形式

"ui":{
    "dashboard-tab":
    {
        "title":"MyTitle",
        "root":"/ui",
        "src":"index.html"
    }
}

root 指定 UI 程式碼在擴充套件映象檔案系統中的資料夾。src 指定應在擴充套件選項卡中載入的入口點。

將來會提供其他 UI 擴充套件點。

VM 部分

vm 部分定義了一個在 Desktop VM 中執行的後端服務。它必須定義一個 imagedocker-compose.yaml 檔案,該檔案指定要在 Desktop VM 中執行的服務。

"vm": {
    "image":"${DESKTOP_PLUGIN_IMAGE}"
},

當您使用 image 時,會為擴充套件生成一個預設的 compose 檔案。

${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 允許呼叫這些二進位制檔案。

瞭解如何 呼叫可執行檔案