appdaemon
appdaemon copied to clipboard
[Feature Request] Official Docker image for ARM on Docker Hub
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.
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.
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.
Yes if you guys can do this, will be very kind of You and Do submit a PR. Thanks
What is the current image building pipeline? Docker Hub? I don't want to force the project into a particular CI pipeline.
@Odianosen25 https://github.com/AppDaemon/appdaemon/pull/1022
JFYI: arm64 build for latest commit in dev branch: docker pull ghcr.io/lexfrei/appdaemon/appdaemon:sha-8a83892
We have had multi-arch builds for quite some time now - closing.