Container image to provide runtime environment for developing and testing Apache Ozone

Clone this repo:
  1. c3fe81f HDDS-11202. Reduce ozone-runner image size (#26) by Doroszlai, Attila · 3 months ago master 20240729-jdk17-1
  2. 9291a8d HDDS-11203. Autolink Ozone Jira issues (#27) by Doroszlai, Attila · 3 months ago
  3. 2dc4390 HDDS-11165. Install ps in ozone-runner image (#25) by Doroszlai, Attila · 3 months ago 20240712-jdk17-2
  4. 5d5bc2f HDDS-11143. Switch to Rocky Linux 8 as CentOS 7 is EOL (#23) by Pratyush Bhatt · 3 months ago 20240712-jdk17-1
  5. 6551048 HDDS-8247. Bump JDK to 17.0.2 (#22) by Doroszlai, Attila · 7 months ago 20240316-jdk17-1

Apache Ozone runner base image

This is the base image to run Apache Hadoop Ozone in docker containers. This is only for test/develop and not for production.

The container doesn't include any Ozone specific jar files or release artifacts just an empty environment which includes all the specific tools to run and test Apache Ozone inside containers.

The image is available as apache/ozone-runner. Build is managed by Docker Hub.

Development

To build the image, please use:

DOCKER_BUILDKIT=1 docker build -t apache/ozone-runner:dev .

To test it, build Apache Ozone:

mvn clean verify -DskipTests -Dskip.npx -DskipShade -Ddocker.ozone-runner.version=dev

And start the compose cluster:

cd hadoop-ozone/dist/target/ozone-*/compose/ozone
docker-compose up -d

*After merging PR, a new tag should pushed to the repository to create a new image. Use the convention: YYYYMMDD-N for tags where N is a daily counter (see the existing tags as an example).

After tag is published (and built by Docker Hub), the used runner version can be updated by modifying the docker.ozone-runner.version version in hadoop-ozone/dist/pom.xml

Building multi-architecture images

To build images with multiple architectures, use docker buildx.

For example, to build images for both linux/amd64 and linux/arm64, run:

docker buildx build --platform linux/amd64,linux/arm64 -t apache/ozone-runner:dev . --progress=plain

It might be slow when building the non-native architecture image due to QEMU emulation.