构建

Docker 镜像

师成师成· 更新于 2026-09-28· 阅读 6 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

本页概述了 Apache Ozone 社区为开发和测试 Ozone 而维护的 Docker 镜像,并介绍了修改这些镜像之一时需要遵循的工作流程。

ozone-runner

ozone-runner 是包含运行和测试 Ozone 所需工具的基础镜像,但不包含任何 Ozone 构件。

开发者和 CI 工作流在很大程度上依赖它来运行/测试自定义的 Ozone 构建版本(通过 bind-mount 使用本地构建产物)。它同时也是 apache/ozone 的基础镜像(见下一节)。

已发布至 Docker Hub 和 GitHub。

开发工作在 master 分支上进行,相关改动会被挑选合并(cherry-pick)到 jdk11 分支。

构建

只需运行辅助脚本 build.sh 即可构建该镜像:

./build.sh

打标签

镜像按日期打标签,分为两种类型:jdk21(用于 Ozone 2.0+)和 jdk11(用于 Ozone 1.x)。

发布 Docker 标签的步骤:

  1. 按照现有格式(<date>-<n>-<flavor>,其中 <n> 从 1 开始,若同一天需要发布多个镜像则递增)为该提交添加 Git 标签。
  2. 将 Git 标签推送到 origin 仓库(apache/ozone-docker-testkrb5)。这将触发一次工作流运行,以便将该标签应用到 Docker 镜像上。

ozone

ozone 构建在 ozone-runner 之上,并加入了官方 Ozone 发行版的二进制文件。

这些镜像用于测试不同 Ozone 版本之间的兼容性,以及从一个版本升级到另一个版本。它也可用于针对特定版本的 Ozone 进行快速试验,而无需下载或重新构建该版本。

已发布至 Docker Hub 和 GitHub。

开发分支:latest。

构建

只需运行辅助脚本 build.sh 即可构建该镜像:

./build.sh

这将为你的架构创建一个单平台镜像。GitHub Actions 中的构建自动化会创建适用于 amd64 和 arm64 的多平台镜像。

可以通过在构建时定义的环境变量进行自定义。

# the URL to download Ozone from; allows using custom tarball or local mirror
OZONE_URL

# version of Ozone to include in the image; ignored if URL is also specified
OZONE_VERSION

# the base image name in repo/image format
OZONE_RUNNER_IMAGE

# the base image version to use
OZONE_RUNNER_VERSION

标签

镜像会根据 Ozone 版本号以及可选的风味(flavor)进行标记。风味后缀 -rocky 是在 ozone-runner 因 CentOS 停止维护而从 CentOS 更改为 Rocky Linux 时引入的,以避免影响现有用户。今后的镜像将只基于 Rocky Linux 发布,分为带风味后缀和不带风味后缀两种。

镜像标签由分支名派生:推送到 ozone-<tag> 分支的镜像会以 <tag> 发布(例如 ozone-1.4.1 -> 1.4.1)。

发布 Docker 标签的步骤:

  1. 更新对应版本的分支:

    • 对于最新的发布版本,通常可以通过快进合并来更新分支:git merge --ff-only origin/latest。这样 CI 工作流就能基于 latest 分支为现有镜像打标签,而不是重新构建一个全新的镜像。
    • 对于其他版本,可以通过 cherry-pick 一个或多个提交来更新分支。
  2. 将分支推送到 origin 仓库(apache/ozone-docker)。这将触发一次工作流运行来发布镜像。

ozone-testkrb5

ozone-testkrb5 在启用 Kerberos 的测试中用作 KDC。

仅发布到 GitHub,因为它完全不安全,只应仅用于测试。

开发分支:master。

构建

只需运行辅助脚本 build.sh 即可构建该镜像:

./build.sh

打标签

镜像按日期打标签。

发布 Docker 标签的步骤:

  1. 按照现有的模式(<日期>-<n>,其中 <n> 从 1 开始,如果同一天需要发布多个镜像则递增)为该提交添加 Git 标签。
  2. 将 Git 标签推送到 origin 仓库(apache/ozone-docker-testkrb5)。这将触发一次工作流运行,以便将该标签应用到 Docker 镜像上。

评论

登录后参与评论

正在加载评论…