Skip to content

Add docker images for ARM / aarch64 #2098

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
renardspark opened this issue Apr 19, 2025 · 27 comments
Open

Add docker images for ARM / aarch64 #2098

renardspark opened this issue Apr 19, 2025 · 27 comments
Labels
help wanted Extra attention is needed
Milestone

Comments

@renardspark
Copy link

Is your feature request related to a problem? Please describe.
I just discovered Checkmate, which looks really simple and great to have an overview of my servers status.
However, I'd like to install it on a Raspberry Pi 5, which is unfortunately incompatible since it's not AMD64-based.

Describe the solution you'd like
I think it would be nice to have a docker image that supports ARM architectures.

Describe alternatives you've considered
I don't really see any alternatives other than installing Checkmate on an AMD64-based system.

Additional context
This feature was already mentioned in the now-closed issues #1368 and #1386, so I'm opening a new one to keep this request visible.

@RAFSuNX
Copy link

RAFSuNX commented Apr 20, 2025

Hey there,

So, I tried running Checkmate today on my ARM VPS using Portainer. The container shows as running, but nothing appears on the URL. When I checked the logs, I found the following:


exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error
exec /docker-entrypoint.sh: exec format error

At first, I thought I made a mistake, but when I checked the repo on Docker Hub, I realized there's no ARM version of the container. I figured I’d bring this up, just to see what the maintainers have to say about it.

After a bit of site browsing, I saw they had tested the ARM image, but I couldn't find the images anywhere to use. Hopefully, it becomes available soon.

@gorkem-bwl
Copy link
Contributor

Unfortunately there are several issues to run MongoDB on specific ARM architectures, discussed here. We tried it without luck for now, but if someone can make it work, we'd be happy to revisit this. Let's keep this issue open for future reference as well.

@gorkem-bwl gorkem-bwl added the help wanted Extra attention is needed label Apr 22, 2025
@gorkem-bwl gorkem-bwl added this to the 3.0 milestone Apr 22, 2025
@RAFSuNX
Copy link

RAFSuNX commented Apr 22, 2025

Unfortunately there are several issues to run MongoDB on specific ARM architectures, discussed here. We tried it without luck for now, but if someone can make it work, we'd be happy to revisit this. Let's keep this issue open for future reference as well.

If it’s just a MongoDB-related issue, then pretty please—at least consider building ARM-compatible images for the rest of the stack.

Many of us already run Mongo externally or use managed instances, so there's no hard dependency forcing Mongo to be bundled in the same container. Giving us a slim ARM build without Mongo would massively help the homelab and ARM crowd.

You’re locking out an entire segment of users just because one service isn’t ARM-ready. That’s like scrapping the whole meal because the dessert isn’t done. Please reconsider.

--by Chatgpt😅

you got me right, just build other images for arm, and make the stack useable with external mongodb instence. That's it,

please let me know if I'm wrong about anything of this
Thank you.

@gorkem-bwl
Copy link
Contributor

You are not wrong ofc :) I am keeping this issue open, and have no intention to lock out an entire segment of users. That's why I said "We tried it without luck" - we have no will to discard the idea. :)

@jnovack
Copy link

jnovack commented Apr 22, 2025

mongodb provides a linux/arm64/v8 docker container which works just fine on Raspberry Pi v4 and Apple's M-series hardware.

@gorkem-bwl
Copy link
Contributor

mongodb provides a linux/arm64/v8 docker container which works just fine on Raspberry Pi v4 and Apple's M-series hardware.

Woo @ajhollid ! This is a gem I assume :)

@RAFSuNX
Copy link

RAFSuNX commented Apr 23, 2025

mongodb provides a linux/arm64/v8 docker container which works just fine on Raspberry Pi v4 and Apple's M-series hardware.

Woo @ajhollid ! This is a gem I assume :)

i dont know but isnt that a arm supported mongodb server
https://hub.docker.com/r/mongodb/mongodb-community-server/tags

@rasouza
Copy link

rasouza commented May 6, 2025

I'm looking for ARM support here as well. Same use case: want to deploy to my raspberry pi

@Hanibachi
Copy link

why not build multi arch docker image by default !!! i always build for multi arch and it's not particularly challenging.

Unfortunately there are several issues to run MongoDB on specific ARM architectures
??? i have 3 instances running on my arm64 based vps without issue , what am i missing?

@gorkem-bwl
Copy link
Contributor

why not build multi arch docker image by default !!! i always build for multi arch and it's not particularly challenging.

Unfortunately there are several issues to run MongoDB on specific ARM architectures
??? i have 3 instances running on my arm64 based vps without issue , what am i missing?

You are not missing anything. There are Docker images for this architecture and we are considering it.

@rhjensen79
Copy link

+1 for arm support here.

@gorkem-bwl
Copy link
Contributor

@rhjensen79 @Hanibachi @rasouza @jnovack @renardspark Arm support is there for you to test guys. Let us know what you think!

https://docs.checkmate.so/checkmate-2.1/users-guide/quickstart

@rhjensen79
Copy link

@gorkem-bwl which one is that ?
The link for the Docker compose file on your quick start is not working, and browsing thru the repo, and trying one of the images in your docker files, gives me :

Status: Downloaded newer image for ghcr.io/bluewave-labs/checkmate:mongo-demo
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

So for now i would claim you still don't have arm support.

@NiceATC
Copy link

NiceATC commented May 14, 2025

@rhjensen79 @Hanibachi @rasouza @jnovack @renardspark Arm support is there for you to test guys. Let us know what you think!

https://docs.checkmate.so/checkmate-2.1/users-guide/quickstart

For me the server does not start, docker shows it as active, but it does not generate any log or respond, it keeps giving bad gateway on the endpoints, the front is working fine

@renardspark
Copy link
Author

@rhjensen79 @Hanibachi @rasouza @jnovack @renardspark Arm support is there for you to test guys. Let us know what you think!

https://docs.checkmate.so/checkmate-2.1/users-guide/quickstart

Thank you @gorkem-bwl !
I just tried to launch it but I have the same error as @rhjensen79 (and same error as when creating this ticket) :

 ! redis The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
 ! mongodb The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
 ! server The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
 ! client The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

and then :

redis-1    | exec /usr/local/bin/docker-entrypoint.sh: exec format error
mongodb-1  | exec /usr/local/bin/docker-entrypoint.sh: exec format error
server-1   | exec /usr/local/bin/docker-entrypoint.sh: exec format error
client-1   | exec /docker-entrypoint.sh: exec format error

I also tried to pull one of the images directly while specifying the architecture, but it looks like the image still doesn't exist :

# docker pull --platform linux/arm64/v8 ghcr.io/bluewave-labs/checkmate:frontend-dist
frontend-dist: Pulling from bluewave-labs/checkmate
Digest: sha256:57e7b687c519d333f211f3aba402dd900a8484afcf827460d97f54e2580bbd08
Status: Image is up to date for ghcr.io/bluewave-labs/checkmate:frontend-dist
image with reference ghcr.io/bluewave-labs/checkmate:frontend-dist was found but its platform (linux/amd64) does not match the specified platform (linux/arm64/v8)

@jnovack
Copy link

jnovack commented May 14, 2025

I don't know what you did (I'm only diagnosing from reading the comments), I believe you did not use docker buildx appropriately. If you are not an arm64 device, you must buildx as an arm64 device.

@gorkem-bwl
Copy link
Contributor

Thank you guys. Really appreciate the time you spent here. We found a Rpi5 and going to test on it directly.

@jlbnetwork
Copy link

I tried to install v2.1 with the quick start compose file in macOS via Orbstack (docker) and I get the flags of "amd64" images not being compatible.

Portainer is what I use to deploy compose files and the mongo one was marked as unhealthy.

I'll keep an eye open on this thread.

@zaakiy
Copy link

zaakiy commented May 17, 2025

I'm a little stuck because we have our infrastructure runs ARM only. Would aoppreciate if more priority could be given to this issue. Thank you.

@rhjensen79
Copy link

@zaakiy i hope you also clicked the sponsor link, before asking a OSS contributor that gives away free software, and their time, to prioritize your issue.
If we want OSS to success, and we are not in a position to fix the problem our self, then sponsoring is a nice and decent way of keeping their support.

@ajhollid
Copy link
Collaborator

Hey @zaakiy ,

ARM support is indeed high on our list of priorities.

It shouldn't be an especially difficult issue, but as @rhjensen79 rightly noted our time is scarce and our resources not without limits.

We appreciate your support and use of the application, rest assured we will get to ARM support sooner rather than later.

@00o-sh
Copy link

00o-sh commented May 20, 2025

See my workflow I have it running on arm64 in Oracle Cloud using my image

thetechnetwork/checkmate

@mertssmnoglu
Copy link
Member

See my workflow I have it running on arm64 in Oracle Cloud using my image

thetechnetwork/checkmate

Hey @elibrody
That's great example for using docker buildx thank you. I think your workflow is running successfully but there is a problem in our app Dockerfile.

Error log in arm64 images:

1 warning found (use docker --debug to expand):
 - JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 25)
server.Dockerfile:9
--------------------
   7 |     
   8 |     COPY client ./
   9 | >>> RUN npm run build
  10 |     
  11 |     FROM node:20-alpine AS app
--------------------
ERROR: failed to solve: process "/bin/sh -c npm run build" did not complete successfully: exit code: 1
Error: buildx failed with: ERROR: failed to solve: process "/bin/sh -c npm run build" did not complete successfully: exit code: 1

I found a solution with specifying --platform=$BUILDPLATFORM to the parent(base) image.

Image

FROM --platform=$BUILDPLATFORM node:20-alpine AS frontend-build

WORKDIR /app/client

COPY client/package*.json ./
RUN npm install

COPY client ./
RUN npm run build

FROM --platform=$BUILDPLATFORM node:20-alpine AS app

WORKDIR /app/server

COPY server ./

COPY --from=frontend-build /app/client/dist ./public

RUN npm install

RUN chmod +x ./scripts/inject-vars.sh

EXPOSE 52345

CMD ["sh", "-c", "./scripts/inject-vars.sh && node ./index.js"]

Final Command

docker buildx build --platform linux/amd64,linux/arm64 -t checkmate-multi-platform -f ./docker/dist-mono/server.Dockerfile .

Please let us know if it works for you.

@00o-sh
Copy link

00o-sh commented May 20, 2025

Check my docker file under both Dist and mono (for mono I had to add an optional package to package.json for client)

@profucius
Copy link

Hi, just adding my voice that I'm looking forward to this too; I have Checkmate running in a linux OS but ideally I'd move it to my Raspberry Pi so that uptime is 100%.

When this feature is complete, how will we be notified? Will it be mentioned in the changelogs, or on the Readme.md? Just making sure I can catch the news when it happens so I'm ready to migrate!

@gorkem-bwl
Copy link
Contributor

@profucius You can join our Discord channel here: https://discord.com/invite/NAb6H3UTjK

Since a lot of people are waiting for this feature, I'll (at least) issue an announcement when it's ready and tag everyeone there - so you can be notified. Does that work for you?

Chances are Alex might issue another minor release for this purpose as well, but I am not sure about what he thinks or whether we'll go that way. But I'm so convinced to make sure everyone hears it promptly :)

@blobberbun
Copy link

Great! I’m looking forward to giving this a spin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests