muesli / beehive

A flexible event/agent & automation system with lots of bees 🐝
GNU Affero General Public License v3.0
6.27k stars 320 forks source link

Add multi-arch docker-build #323

Open rhnvrm opened 4 years ago

rhnvrm commented 4 years ago

Closes #314

dereulenspiegel commented 3 years ago

Any chance that this gets merged soon? Would really love to run beehive on a Raspberry Pi :)

muesli commented 3 years ago

Afraid that's only part of a solution. Ideally we integrate Docker builds with goreleaser, as this release script is a bit obsolete. Sadly there are still issues with goreleaser and cross-platform builds.

We'll also have to disable the automated Docker hub builds, otherwise these approaches will constantly race each other, at least for the latest tag.

I will do a manual build & push for the latest stable release, so you can at least start using it on a Pi.

muesli commented 3 years ago

Actually this is even more complicated than anticipated, because buildx is still an experimental feature and not enabled by default.

muesli commented 3 years ago

This might help us: https://goreleaser.com/customization/docker_manifest/

rhnvrm commented 3 years ago

Hey @muesli

I implemented the github action (ref: https://github.com/muesli/beehive/issues/314#issuecomment-723153160).

This might help us: https://goreleaser.com/customization/docker_manifest/

It uses the same experimental setup, so even if we use goreleaser, you will have to set up buildx locally. To avoid this local setup, we can continue using goreleaser to create the tag and push it to the repo; on push of the tag, the github action will build and push the docker image. (ref this PR: https://github.com/muesli/beehive/pull/323/commits/c2aca9d244ad1ff4ec39daa1ffed56e265cedbcb)