打包並發佈您的擴充功能
本頁面包含有關如何打包與分發擴充功能的補充資訊。
打包您的擴充功能
Docker 擴充功能打包為 Docker 映像檔。完整的擴充功能執行環境(包括使用者介面、後端服務(主機或 VM)以及任何必要的二進位檔)都必須包含在擴充功能映像檔中。每個擴充功能映像檔必須在其檔案系統根目錄包含一個 metadata.json 檔案,用以定義擴充功能的內容。
Docker 映像檔必須具備數個映像檔標籤 (labels),提供關於該擴充功能的資訊。請參閱如何使用擴充功能標籤來提供擴充功能概覽資訊。
要打包並發布擴充功能,您必須建置一個 Docker 映像檔 (docker build),並將其推送到 Docker Hub (docker push),同時加上特定的標籤,以便您管理擴充功能的版本。
發布您的擴充功能
Docker 映像檔標籤必須遵循 semver(語意化版本)慣例,以便能夠獲取擴充功能的最新版本,並了解是否有更新可用。請參閱 semver.org 以了解更多關於語意化版本控制的資訊。
擴充功能映像檔必須是多架構 (multi-arch) 映像檔,這樣使用者才能在 ARM/AMD 硬體上安裝擴充功能。這些多架構映像檔可以包含針對 ARM/AMD 的特定二進位檔。Mac 使用者將會根據其架構自動使用正確的映像檔。在主機上安裝二進位檔的擴充功能,也必須在同一個擴充功能映像檔中提供 Windows 二進位檔。請參閱如何為您的擴充功能建置多架構映像檔。
您可以實作擴充功能,而不受程式碼儲存庫的任何限制。Docker 不需要存取程式碼儲存庫即可使用該擴充功能。此外,您也可以管理擴充功能的新版本,而無需依賴 Docker Desktop 的版本發布。
新版本與更新
您可以透過推送帶有新標籤的新映像檔到 Docker Hub,來發布 Docker 擴充功能的新版本。
推送到對應擴充功能映像檔儲存庫的任何新映像檔,都會定義該擴充功能的一個新版本。映像檔標籤用於識別版本號。擴充功能版本必須遵循 semver 規範,以便於理解與比較版本。
Docker Desktop 會掃描市集 (marketplace) 中已發布的擴充功能清單以查找新版本,並在特定擴充功能有更新時通知使用者。目前,非市集成員的擴充功能尚未具備自動更新通知功能。
使用者無需更新 Docker Desktop 本身,即可下載並安裝任何擴充功能的新版本。
擴充功能 API 相依性
擴充功能必須指定其所依賴的擴充功能 API 版本。Docker Desktop 會檢查擴充功能所需的版本,並僅建議安裝與當前已安裝的 Docker Desktop 版本相容的擴充功能。使用者可能需要更新 Docker Desktop,才能安裝最新版本的擴充功能。
擴充功能映像檔標籤必須指定該擴充功能所依賴的 API 版本。這使得 Docker Desktop 能夠在不預先下載完整擴充功能映像檔的情況下,檢視擴充功能映像檔的新版本。
擴充功能與擴充功能 SDK 的授權
Docker Extension SDK 採用 Apache 2.0 授權,且可免費使用。
關於每個擴充功能應如何授權並無限制,這是您在建立新擴充功能時可以自行決定的事項。