adoroszlai commented on code in PR #126: URL: https://github.com/apache/ozone-site/pull/126#discussion_r1975366474
########## docs/08-developer-guide/01-build/03-docker-images.md: ########## @@ -2,10 +2,126 @@ sidebar_label: Docker Images --- +<!-- cspell:word testkrb5 --> + # Building Ozone Docker Images -**TODO:** File a subtask under [HDDS-9861](https://issues.apache.org/jira/browse/HDDS-9861) and complete this page or section. +This page provides an overview of the Docker images maintained by the Apache Ozone community for developing and testing Ozone. It also describes the workflow to be followed when making changes to one of these images. + +## Images + +### Base Image (without any Ozone) + +[ozone-runner](https://github.com/apache/ozone-docker-runner) contains tools for running and testing Ozone, but does not include any Ozone artifacts. + +Developers and CI workflows rely on it heavily to run/test custom Ozone builds (using the local build via bind-mount). It also serves as the base image for `apache/ozone` (see next section). + +Published to [Docker Hub](https://hub.docker.com/r/apache/ozone-runner) and [GitHub](https://github.com/apache/ozone-docker-runner/pkgs/container/ozone-runner). + +### Image with Specific Version of Ozone + +[ozone](https://github.com/apache/ozone-docker) is built on top of `ozone-runner`, adding the binaries built for official Ozone releases. + +These are used for testing compatibility of various Ozone versions, and upgrade from one version to another. May also be useful for running quick experiments with specific version of Ozone, without the need to download or rebuild it. + +Published to [Docker Hub](https://hub.docker.com/r/apache/ozone) and [GitHub](https://github.com/apache/ozone-docker/pkgs/container/ozone). + +### Kerberos KDC for Testing + +[ozone-testkrb5](https://github.com/apache/ozone-docker-testkrb5) is used as KDC in tests where Kerberos is enabled. + +Published only to [GitHub](https://github.com/apache/ozone-docker-testkrb5/pkgs/container/ozone-testkrb5). + +## Development + +### Common Flow + +High-level overview of making changes to any of the Docker images: + +1. Local development: make changes, build image, test locally. +2. If this is your first time working on the image: fork the repo and enable GitHub Actions workflows. +3. Push to your fork. The image is built and tagged by commit SHA in GitHub. This can be used for testing integration with other repos, e.g. using as base for the `ozone` image, or using in Ozone CI. It can also be shared with others for feedback. +4. Create pull request. The change is validated in CI workflow. Ask for reviews. +5. Final steps for committers: + 1. Merge the pull request. This will trigger build and the image will be tagged with commit SHA. + 2. Fetch changes to your local clone. + 3. The way the image can be published with a friendlier tag depends on the repo, see details below. + +### Base Image + +Development happens on branch `master`, relevant changes are cherry-picked to branch `jdk11`. Review Comment: - Tagging is similar for `ozone-runner` and `ozone-testkrb5`, but runner requires JDK-specific version. - `ozone` uses branching for versions instead of tagging, because we need to maintain it for multiple Ozone releases. - The only real branching difference is: `latest` vs. `master`. - We can unify build procedure, created PR for adding `build.sh` in the other two repos: - https://github.com/apache/ozone-docker-runner/pull/39 - https://github.com/apache/ozone-docker-testkrb5/pull/11 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
