appdaemon icon indicating copy to clipboard operation
appdaemon copied to clipboard

[Feature Request] Official Docker image for ARM on Docker Hub

Open koenvervloesem opened this issue 4 years ago • 6 comments

I noticed that there's only an amd64 image of this container on Docker Hub.

Is there a specific reason for this? I built the image myself on a Raspberry Pi 4 running Raspbian 10.3 (taking around 20 minutes) and the container just works. It would be awesome if you could publish an official armv7 build of AppDaemon on Ducker Hub.

If you need help, just let me know.

koenvervloesem avatar May 05 '20 10:05 koenvervloesem

For what it's worth, I just did a multi-arch build for amd64 and armv7 and this worked.

Here's how I did this:

First some preparation on the build host (which is a amd64 machine), as explained in a blog post from Docker:

docker run --privileged --rm docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
sudo systemctl restart docker.service
mkdir ~/.docker/cli-plugins
wget https://github.com/docker/buildx/releases/download/v0.4.1/buildx-v0.4.1.linux-arm64 -O ~/.docker/cli-plugins/docker-buildx
chmod a+x ~/.docker/cli-plugins/docker-buildx

Build the images for different platforms and push them:

docker buildx build --platform linux/amd64 -t koenvervloesem/appdaemon:amd64 .
docker push koenvervloesem/appdaemon:amd64
docker buildx build --platform linux/arm/v7 -t koenvervloesem/appdaemon:armv7 .
docker push koenvervloesem/appdaemon:armv7

Then create and push a manifest so the latest tag refers to the right tag for your architecture:

docker manifest create koenvervloesem/appdaemon:latest koenvervloesem/appdaemon:amd64 koenvervloesem/appdaemon:armv7
docker manifest push koenvervloesem/appdaemon:latest

You can try the result, a multi-arch Docker build for appdaemon, from koenvervloesem/appdaemon. A docker pull koenvervloesem/appdaemon on amd64 or armv7 (such as Raspbian on the Raspberry Pi) should work. I tested this on Ubuntu 19.10 for amd64 and Raspbian 10 on a Raspberry Pi 4 for armv7.

It would be awesome if this multi-arch build process could be used for the official Docker images of AppDaemon. Adding armv6 and armv8 images can be done the same way. Let me know if you need some help.

koenvervloesem avatar May 05 '20 11:05 koenvervloesem

I've built a few multi-arch pipelines before and would be happy to turn this into a patch for whatever CI tool is being used to generate the current images.

ViViDboarder avatar May 17 '20 20:05 ViViDboarder

Yes if you guys can do this, will be very kind of You and Do submit a PR. Thanks

Odianosen25 avatar May 25 '20 16:05 Odianosen25

What is the current image building pipeline? Docker Hub? I don't want to force the project into a particular CI pipeline.

ViViDboarder avatar May 26 '20 23:05 ViViDboarder

@Odianosen25 https://github.com/AppDaemon/appdaemon/pull/1022

benleb avatar Aug 11 '20 19:08 benleb

JFYI: arm64 build for latest commit in dev branch: docker pull ghcr.io/lexfrei/appdaemon/appdaemon:sha-8a83892

lexfrei avatar Nov 30 '20 19:11 lexfrei

We have had multi-arch builds for quite some time now - closing.

acockburn avatar Mar 04 '23 01:03 acockburn