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

Clone this repo:
  1. 37049aa HDDS-6929. Create local users and groups for Ozone Services (#14) by Ritesh H Shukla · 3 months ago master 20220623-1
  2. e0fc76b HDDS-6524. Bump rocksdb ldb to 7.0.4 and others in ozone-runner; Reduce image size by ~20% (#13) by Siyao Meng · 6 months ago 20220404-1
  3. 91e0399 HDDS-6265. Add arm64 architecture support for ozone-runner docker image (#11) by Siyao Meng · 7 months ago
  4. e8942d9 HDDS-6359. Install JDK in runner image (#12) by Doroszlai, Attila · 7 months ago 20220228-1
  5. 517c187 HDDS-6264. Bump centos to 7.9.2009, dependencies and tools in ozone-runner (#10) by Siyao Meng · 8 months ago 20220212-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.