跳至主要内容

打包和发布 Podman 桌面扩展

要让用户能够安装您的扩展,请考虑将您的扩展发布到 Open Container Initiative (OCI) 镜像注册表。

先决条件

  • 扩展构建成功。请参阅 开发 Podman 桌面扩展

  • 所有运行时依赖项都在最终二进制文件中。

  • 用于发布的 OCI 镜像注册表,例如 quay.io/fbenoit/my-first-extension

  • (可选) OCI 镜像注册表是公开的,以便任何人都可以获取镜像。

过程

  1. 创建并编辑 Containerfile 文件。

  2. 使用 scratch 镜像。扩展不需要运行时

    FROM scratch
  3. 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 桌面版本。

  4. 将扩展程序程序集(包括元数据、图标和生产二进制文件)复制到镜像内部的 /extension 文件夹中

    COPY package.json /extension/
    COPY icon.png /extension/
    COPY dist /extension/dist
  5. 构建镜像

    $ podman build -t quay.io/fbenoit/my-first-extension .
  6. 将镜像和清单推送到 OCI 镜像注册表

    $ podman push quay.io/fbenoit/my-first-extension

添加平台特定文件

您可能希望向扩展的镜像中添加一个系统原生可执行文件,以便扩展能够执行它。

与扩展代码(转译为 JavaScript)可以在任何平台上执行不同,您需要准备几个 OCI 镜像,每个平台(操作系统和体系结构)一个,以支持扩展的运行。

为此,您需要创建

  • 每个平台一个 Containerfile(或一个包含参数的通用 Containerfile),以创建每个平台一个镜像,
  • 一个清单,以引用上一步创建的所有镜像。

您需要与用户共享以安装扩展的 URL 是清单的 URL。

如果清单不包含用户平台的镜像,Podman 桌面将安装 Linux(amd64 或 arm64,具体取决于用户平台的体系结构)的镜像。

您可以利用 Buildah Build 操作 来构建此清单。

后续步骤