擴充功能中繼資料

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 允許叫用這些二進位檔。

瞭解如何 叫用可執行檔