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:devThis 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=devthen 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:
- Create a new branch in your clone of
apache/ozone. - Update
OZONE_RUNNER_IMAGEtoghcr.io/<username>/ozone-runnerin check.yml. - Update
docker.ozone-runner.versionto<commit SHA>in hadoop-ozone/dist/pom.xml. - Commit the change and push to your fork of
apache/ozone.
- Fetch changes to your local clone.
- Add a Git tag for the commit following the existing pattern
<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:jdk21,jdk11,jdk8,slim
- Push the Git tag to the official repo (
apache/ozone-docker-runner). This will trigger a workflow to apply the tag to the Docker image. - Set
Fix Versionof the Jira issue torunner-<date>-<n>-<flavor>
- Cherry-pick changes from
masterto other variants:- If the change is relevant for Ozone 1.x versions, cherry-pick it to the
jdk11branch. - If the change is not restricted to server-side components, cherry-pick it to the
jdk8branch. - If the change is not restricted to dev/test tools, cherry-pick it to the
slimbranch.
- If the change is relevant for Ozone 1.x versions, cherry-pick it to the
- Push the branch to your fork
- If CI in your fork passes, push the same branch to
apache/ozone-docker-runner - Tag commits as described earlier.