打包和发布 Podman 桌面扩展
要让用户能够安装您的扩展,请考虑将您的扩展发布到 Open Container Initiative (OCI) 镜像注册表。
先决条件
-
扩展构建成功。请参阅 开发 Podman 桌面扩展。
-
所有运行时依赖项都在最终二进制文件中。
-
用于发布的 OCI 镜像注册表,例如
quay.io/fbenoit/my-first-extension
。 -
(可选) OCI 镜像注册表是公开的,以便任何人都可以获取镜像。
过程
-
创建并编辑
Containerfile
文件。 -
使用 scratch 镜像。扩展不需要运行时
FROM scratch
-
在
OCI
镜像上应用强制性的 Podman 桌面元数据LABEL org.opencontainers.image.title="My first extension" \
org.opencontainers.image.description="Example of extension" \
org.opencontainers.image.vendor="podman-desktop" \
io.podman-desktop.api.version=">= 0.12.0"io.podman-desktop.api.version=">= 0.12.0"
设置扩展运行所需的最小 Podman 桌面版本。 -
将扩展程序程序集(包括元数据、图标和生产二进制文件)复制到镜像内部的
/extension
文件夹中COPY package.json /extension/
COPY icon.png /extension/
COPY dist /extension/dist -
构建镜像
$ podman build -t quay.io/fbenoit/my-first-extension .
-
将镜像和清单推送到 OCI 镜像注册表
$ podman push quay.io/fbenoit/my-first-extension
添加平台特定文件
您可能希望向扩展的镜像中添加一个系统原生可执行文件,以便扩展能够执行它。
与扩展代码(转译为 JavaScript)可以在任何平台上执行不同,您需要准备几个 OCI 镜像,每个平台(操作系统和体系结构)一个,以支持扩展的运行。
为此,您需要创建
- 每个平台一个 Containerfile(或一个包含参数的通用 Containerfile),以创建每个平台一个镜像,
- 一个清单,以引用上一步创建的所有镜像。
您需要与用户共享以安装扩展的 URL 是清单的 URL。
如果清单不包含用户平台的镜像,Podman 桌面将安装 Linux(amd64 或 arm64,具体取决于用户平台的体系结构)的镜像。
您可以利用 Buildah Build 操作 来构建此清单。