This document contains information on how to build native zeebe docker images for other platforms than the default amd64 architecture (e.g. for Apple Silicon/M1 based Macs).
Note These instructions are meant for local development and testing (especially on ARM-based machines), not for production use.
Either build the project yourself or download an existing artifact, specifying the desired version:
mvn dependency:get -B \
-DremoteRepositories="https://artifacts.camunda.com/artifactory/zeebe-io/" \
-DgroupId="io.camunda" -DartifactId="camunda-zeebe" \
-Dversion="8.1.2" -Dpackaging="tar.gz" -Dtransitive=false
mvn dependency:copy -B \
-Dartifact="io.camunda:camunda-zeebe:8.1.2:tar.gz" \
-DoutputDirectory=./ \
-Dmdep.stripVersion=true
The Dockerfile for Zeebe requires BuildKit, which is enabled by default if Docker Desktop is installed. On Linux you may need to enable it explictly by setting the environment variable
DOCKER_BUILDKIT=1
Now build the image for your local platform (supported for AMD64 and ARM64):
docker build --build-arg DIST=build -t my-zeebe:latest .
If you already built or downloaded a distball you can use that too:
docker build --build-arg DISTBALL=camunda-zeebe.tar.gz -t my-zeebe:latest .
If you need a specific version of
the eclipse-temurin:17-jre-focal
base image,
you can override the default BASE_DIGEST[_AMD64|ARM64] depending on your local architecture like
that:
amd64: --build-arg BASE_DIGEST_AMD64="sha256:00a5775f5eb7c24a19cb76ded742cbfcc50c61f062105af9730dadde217e4390"
arm64: --build-arg BASE_DIGEST_ARM64="sha256:ce46be0c4b4edd9f519e99ad68a6b5765abe577fbf1662d8ad2550838eb29823"
In your docker-compose.yaml, change camunda/zeebe
to my-zeebe
to use the newly created image.