For general contribution guideline, please check the Apache Ozone repository.
Development of the ozone image happens on branch latest.
The image can be built simply by running the helper script build.sh:
$ ./build.sh ... => => naming to docker.io/apache/ozone:dev
This will create a single-platform image for your architecture.
It can be customized via environment variables defined at build time.
# 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
The image can be tested locally with the sample Docker Compose definition in this repo, by setting OZONE_IMAGE_VERSION:
export OZONE_IMAGE_VERSION=dev docker compose up -d --scale datanode=3
If this is your first time working on the image, please enable GitHub Actions workflows after forking the repo.
Whenever changes are pushed to your fork, GitHub builds a multi-platform image (for amd64 and arm64), and tags it with the commit SHA. These images can be shared with other developers for feedback. Workflow runs are listed at https://github.com/<username>/ozone-docker/actions, images at https://github.com/<username>/ozone-docker/pkgs/container/ozone.
Image tags are derived from branch names: push to the branch ozone-<tag> gets published with <tag> (e.g. ozone-1.4.1 -> 1.4.1).
ozone-<version> and ozone-<version>-rocky):git merge --ff-only origin/latest. By applying the exact same commit to multiple branches, the CI workflow can tag the existing image created for the latest branch, instead of building completely new images.apache/ozone-docker). This will trigger a workflow run to publish the image.