root-project / root-docker

Docker recipes for ROOT
30 stars 33 forks source link

Build images with aarch64/arm64 support #47

Open wdconinc opened 1 year ago

wdconinc commented 1 year ago

Several of the docker images for which recipes are provided here should work 'just fine' with aarch64 architectures to run natively on Mac M1/M2 architectures (fedora has a multiarch base images and fedora makes aarch64 packages available), but others may require work (ubuntu downloads the x86_64 build from root.cern, where no aarch64 is made available). Is it possible to push at a minimum 1 image with arm64 (i.e. aarch64) support to docker hub?

The procedure to build a multiarch image with least amount of effort (even if it would take a bit of time) is described in https://docs.docker.com/build/building/multi-platform/. Essentially, the following commands may be sufficient:

apt-get install qemu binfmt-support qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx create --name builder --driver docker-container --bootstrap --use
docker buildx build --load --platform linux/arm64 -t rootproject/root:6.26.10-fedora36 -f fedora/Dockerfile fedora/

I am not a direct user, but it would facilitate our offerings of HSF Training workshops if Mac users could get up and running with an image that can run at native speeds. I think a phased rollout where not all images are supporting arm64 from the start would be fine.

eguiraud commented 1 year ago

Hi @wdconinc ,

thank you for reaching out! Do I understand correctly that at least some of the current images can be used as-is, although with a performance penalty?

At the moment we don't really have the personpower to work on this but I have assigned the issue to me so it doesn't get forgotten.

wdconinc commented 1 year ago

They can be used as is, but with a performance penalty due to emulation.

xkzl commented 4 months ago

Hello @eguiraud , I was just about to ask the same as @wdconinc ! It would be really great to provide both amd64/arm64 docker images.

I was running some performance benchmark tests for computing resources estimations (K8s cluster) and I just discovered that my docker image wasn't arm64. This would be very useful if this was deployed with these two main architectures

martamaja10 commented 4 months ago

Hi @xkzl,

thanks for reporting and we hear you. I also added myself to this issue. I will keep you updated once this is done (but it might be non-immediate).

Cheers, Marta