For general contribution guideline, please check the Apache Ozone repository.
Development of the ozone-runner image happens on branch master. Relevant changes are cherry-picked to branch jdk11 (used for versions before Ozone 2.0), jdk8 (for testing Ozone client Java version compatibility) and slim (a variant without dev/test tools, used by other projects).
The image can be built simply by running the helper script build.sh:
$ ./build.sh ... => => naming to docker.io/apache/ozone-runner:dev
This will create a single-platform image for your architecture.
To try the image locally with Ozone acceptance tests, define the version to be used:
export OZONE_RUNNER_VERSION=dev
then run acceptance tests as needed.
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-runner/actions, images at https://github.com/<username>/ozone-docker-runner/pkgs/container/ozone-runner.
To run complete Ozone CI with the custom image:
apache/ozone.OZONE_RUNNER_IMAGE to ghcr.io/<username>/ozone-runner in check.yml.docker.ozone-runner.version to <commit SHA> in hadoop-ozone/dist/pom.xml.apache/ozone.<date>-<n>-<flavor>, where<n> starts at 1, and is incremented if multiple images need to be published the same day)<flavor> is one of: jdk25, jdk21, jdk11, jdk8, slimapache/ozone-docker-runner). This will trigger a workflow to apply the tag to the Docker image.Fix Version of the Jira issue to runner-<date>-<n>-<flavor>master to other variants:jdk11 branch.jdk8 branch.slim branch.apache/ozone-docker-runner