rqlite-docker icon indicating copy to clipboard operation
rqlite-docker copied to clipboard

Add ARM support

Open Mikle-Bond opened this issue 3 years ago • 10 comments

From what I see in rqlite/rqlite#340 it should be possible to build ARM images and push them to Docker hub. I've noticed that Netmaker 0.7 uses rqlite as recommended and default data storage. But their official documentation doesn't mention that installation via Docker will fail on arm-based computers.

Mikle-Bond avatar Aug 17 '21 08:08 Mikle-Bond

Fixed. https://www.philipotoole.com/rqlite-7-6-0-released/

otoolep avatar Jul 20 '22 01:07 otoolep

We

otoolep avatar Jul 20 '22 01:07 otoolep

Well, not fixed, but there are ARM builds available now.

otoolep avatar Jul 20 '22 01:07 otoolep

pls add arm docker tag, tks

bigmangos avatar Aug 21 '22 02:08 bigmangos

What are best practices for tag management in the Docker hub?

otoolep avatar Aug 22 '22 12:08 otoolep

@otoolep Hi, in Docker Hub, no need to add a tag for cpu architecture. Tags are for version and base OS. Usually tags are like this:

  • latest for the latest version with latest default OS
  • alpine / ubuntu for the latest version with alternative OS
  • 2 or v2 (or whatever how version are named) for the latest minor version in v2 with default OS
  • 2-alpine for the latest minor version in v2 with alternative OS

But you are free to use your own tagging policy. Just tagging version is more than enough.

you can see a good example on the HTTPD docker hub page. Notice that for each tags several builds exists, dockerd will just pull the right one.

Most CI can build all architectures, tag it, and push it using variables.

ARM starts to gain a lot of traction in professional market right now (AWS and Azure are now providing ARM and plan them to be default arch)

clementduveau avatar Aug 23 '22 10:08 clementduveau

Hey, I saw that you were using CircleCI for the main repo, and i found an example here

Basically, docker provides buildx to build images to multiple architectures without the need to launch a machine with a specific architecture. I am not sure to understand exactly your workflow with Docker and how different is the compiling commands between ARM and x64, so I can't contribute right now. If you need help to search for more informations or contribute on specific stuff, you can ask my help.

clementduveau avatar Aug 23 '22 10:08 clementduveau

is it circleci thats in use? It looks like docker v20 is in use by default so perhaps just need a config and update to start using buildx https://circleci.com/docs/building-docker-images#docker-version

I was able to configure buildx locally and get a multi-platform image built wth the existing BUILDING.md after a buildx cange. https://github.com/rqlite/rqlite/issues/1050#issuecomment-1255524329

Edit: circleci docs reference, https://github.com/circleci/circleci-docs/issues/6034 Edit Edit: also trying to make a PR if this is the right track for the changes to try and at buildx support, assuming circli(first time using circlci for myself so let me know if something is off.) https://github.com/rqlite/rqlite-docker/pull/13

NerdyShawn avatar Oct 04 '22 01:10 NerdyShawn

docker run rqlite/rqlite

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec /bin/docker-entrypoint.sh: exec format error

I will make a local build but cooler if it was already pushed on Docker Hub so it just works for everyone

https://hub.docker.com/r/rqlite/rqlite/tags (missing ARM builds)

Thanks, looks promising

LuKks avatar Apr 03 '24 00:04 LuKks

+1

3goats avatar Apr 09 '24 14:04 3goats