[GH-ISSUE #18] Support for arm64 images #18

Closed
opened 2026-02-26 21:34:01 +03:00 by kerem · 18 comments
Owner

Originally created by @arminus on GitHub (Aug 4, 2024).
Original GitHub issue: https://github.com/eduardolat/pgbackweb/issues/18

First of all, great idea and looking forward to the planned features!

Since my always-on box at home is a Pi4, I've tried to test this there by extending your Dockerfile for arm64, see here. Cross built the image (on a faster amd64) like so:

docker buildx create --name mybuilder --use
docker buildx inspect --bootstrap
docker buildx build --platform linux/arm64 -t pgbackweb:latest --output type=docker,dest=pgbackweb.tar .

Then, to bypass a docker registry for now, copied the image to the Pi4 and loaded it with

docker load -i pgbackweb.tar

Works like a charm.

In case you're interested, I'd create a PR, maybe I also have time to checkout how to set this up in a github build pipeline for arm64 but I haven't done this before so no promises ;-)

Originally created by @arminus on GitHub (Aug 4, 2024). Original GitHub issue: https://github.com/eduardolat/pgbackweb/issues/18 First of all, great idea and looking forward to the planned features! Since my always-on box at home is a Pi4, I've tried to test this there by extending your Dockerfile for arm64, see [here](https://github.com/eduardolat/pgbackweb/compare/main...arminus:pgbackweb:main). Cross built the image (on a faster amd64) like so: ``` docker buildx create --name mybuilder --use docker buildx inspect --bootstrap docker buildx build --platform linux/arm64 -t pgbackweb:latest --output type=docker,dest=pgbackweb.tar . ``` Then, to bypass a docker registry for now, copied the image to the Pi4 and loaded it with ``` docker load -i pgbackweb.tar ``` Works like a charm. In case you're interested, I'd create a PR, maybe I also have time to checkout how to set this up in a github build pipeline for arm64 but I haven't done this before so no promises ;-)
Author
Owner

@eduardolat commented on GitHub (Aug 4, 2024):

Great! It can be very useful, just make sure your PR doesn't add too much complexity to the project, as it's important to keep it as simple as possible.

Thanks for considering contributing to the project.

<!-- gh-comment-id:2267850027 --> @eduardolat commented on GitHub (Aug 4, 2024): Great! It can be very useful, just make sure your PR doesn't add too much complexity to the project, as it's important to keep it as simple as possible. Thanks for considering contributing to the project.
Author
Owner

@arminus commented on GitHub (Aug 5, 2024):

No complexity, it's just platform specific wgets in your Dockerfile, see https://github.com/eduardolat/pgbackweb/pull/21

I see no github pipeline for how you build and publish your Docker image, so I can't automate that I'm afraid.

<!-- gh-comment-id:2268369971 --> @arminus commented on GitHub (Aug 5, 2024): No complexity, it's just platform specific wgets in your Dockerfile, see https://github.com/eduardolat/pgbackweb/pull/21 I see no github pipeline for how you build and publish your Docker image, so I can't automate that I'm afraid.
Author
Owner

@ykrasik commented on GitHub (Aug 12, 2024):

+1 on this, please

<!-- gh-comment-id:2284808204 --> @ykrasik commented on GitHub (Aug 12, 2024): +1 on this, please
Author
Owner

@ThisIsBenny commented on GitHub (Sep 5, 2024):

+1

<!-- gh-comment-id:2330787880 --> @ThisIsBenny commented on GitHub (Sep 5, 2024): +1
Author
Owner

@eduardolat commented on GitHub (Sep 7, 2024):

Thanks @arminus for your great help.

Since you opened your pr, there have been many changes to the Dockerfiles, the base image has been changed, dependencies have been added, and many other things.

However, I have taken the changes proposed in your pr #21 and adapted them to the new Dockerfiles.

I have also included a script that checks that the dependencies are working correctly and I have added it to the github actions tests workflow.

All that is left is to add a github action to automatically publish the image in each release.

Everything is working perfectly and this will be published in the next release, thanks for your help and thanks to everyone for the interest in the project 🍻

image

<!-- gh-comment-id:2335096519 --> @eduardolat commented on GitHub (Sep 7, 2024): Thanks @arminus for your great help. Since you opened your pr, there have been many changes to the Dockerfiles, the base image has been changed, dependencies have been added, and many other things. However, I have taken the changes proposed in your pr #21 and adapted them to the new Dockerfiles. I have also included a script that checks that the dependencies are working correctly and I have added it to the github actions tests workflow. All that is left is to add a github action to automatically publish the image in each release. Everything is working perfectly and this will be published in the next release, thanks for your help and thanks to everyone for the interest in the project 🍻 ![image](https://github.com/user-attachments/assets/92aaf075-996c-45b2-aaa6-d8353531cdcc)
Author
Owner

@eduardolat commented on GitHub (Sep 8, 2024):

This has been published in the v0.3.0 release https://github.com/eduardolat/pgbackweb/releases/tag/0.3.0

<!-- gh-comment-id:2336788190 --> @eduardolat commented on GitHub (Sep 8, 2024): This has been published in the v0.3.0 release https://github.com/eduardolat/pgbackweb/releases/tag/0.3.0
Author
Owner

@ThisIsBenny commented on GitHub (Sep 9, 2024):

I got the error:
exec user process caused: exec format error
Which usually happens when it is not an ARM64 image.
Is the image working for some one?

<!-- gh-comment-id:2337325620 --> @ThisIsBenny commented on GitHub (Sep 9, 2024): I got the error: `exec user process caused: exec format error` Which usually happens when it is not an ARM64 image. Is the image working for some one?
Author
Owner

@eduardolat commented on GitHub (Sep 9, 2024):

hey @ThisIsBenny, can you try to pull the latest version with this command?

docker pull --platform=linux/arm64 eduardolat/pgbackweb:0.3.0

And then explicitly set in your compose file the version of your image to

services:
  pgbackweb:
    image: eduardolat/pgbackweb:latest:0.3.0

## rest of your config
<!-- gh-comment-id:2338283506 --> @eduardolat commented on GitHub (Sep 9, 2024): hey @ThisIsBenny, can you try to pull the latest version with this command? `docker pull --platform=linux/arm64 eduardolat/pgbackweb:0.3.0` And then explicitly set in your compose file the version of your image to ``` services: pgbackweb: image: eduardolat/pgbackweb:latest:0.3.0 ## rest of your config ```
Author
Owner

@ThisIsBenny commented on GitHub (Sep 9, 2024):

I have used it with my Raspberry PI Kubernetes Cluster, why i'm not able to specify the platform manually. But I have used the 0.3.0 Tag and also tried with the SHA hash of the Arm image like 0.3.0@sha....

<!-- gh-comment-id:2338408770 --> @ThisIsBenny commented on GitHub (Sep 9, 2024): I have used it with my Raspberry PI Kubernetes Cluster, why i'm not able to specify the platform manually. But I have used the 0.3.0 Tag and also tried with the SHA hash of the Arm image like 0.3.0@sha....
Author
Owner

@eduardolat commented on GitHub (Sep 9, 2024):

Can you please try (just for test purposes) with the docker compose in the README.md?

<!-- gh-comment-id:2338490169 --> @eduardolat commented on GitHub (Sep 9, 2024): Can you please try (just for test purposes) with the docker compose in the README.md?
Author
Owner

@arminus commented on GitHub (Sep 11, 2024):

docker pull --platform=linux/arm64 eduardolat/pgbackweb:0.3.0

then compose

image: eduardolat/pgbackweb:0.3.0

(note: 2 tags are illegal syntax)

does not work, still getting exec format error.

I assume the Manifest for the images is wrong or missing:

docker manifest inspect eduardolat/pgbackweb:0.3.0
no such manifest: docker.io/eduardolat/pgbackweb:0.3.0

Normally (with all other images I run on my Pi4), I don't have to explicitly set the platform when pulling, docker figures this out on its own if the images are configured properly (but I haven't built multiplatform images myself yet, so I can only guess here)

<!-- gh-comment-id:2342989676 --> @arminus commented on GitHub (Sep 11, 2024): ``` docker pull --platform=linux/arm64 eduardolat/pgbackweb:0.3.0 ```` then compose ``` image: eduardolat/pgbackweb:0.3.0 ``` (note: 2 tags are illegal syntax) **does not work, still getting exec format error.** I assume the Manifest for the images is wrong or missing: ``` docker manifest inspect eduardolat/pgbackweb:0.3.0 no such manifest: docker.io/eduardolat/pgbackweb:0.3.0 ``` Normally (with all other images I run on my Pi4), I don't have to explicitly set the platform when pulling, docker figures this out on its own if the images are configured properly (but I haven't built multiplatform images myself yet, so I can only guess here)
Author
Owner

@electric-m commented on GitHub (Nov 6, 2024):

does not work, still getting exec format error.

Same issue for me here an a Hetzner ARM VPS.
Explicitly defined pulled an d defined the 0.3.0. tag.

~/pgbackweb$ docker image inspect eduardolat/pgbackweb:0.3.0 | grep Architecture
        "Architecture": "arm64",
<!-- gh-comment-id:2460060406 --> @electric-m commented on GitHub (Nov 6, 2024): > > **does not work, still getting exec format error.** > Same issue for me here an a Hetzner ARM VPS. Explicitly defined pulled an d defined the 0.3.0. tag. ``` ~/pgbackweb$ docker image inspect eduardolat/pgbackweb:0.3.0 | grep Architecture "Architecture": "arm64", ```
Author
Owner

@eduardolat commented on GitHub (Nov 6, 2024):

You are totally right! the fix is on the way on the develop branch, will be included in next release

<!-- gh-comment-id:2460207854 --> @eduardolat commented on GitHub (Nov 6, 2024): You are totally right! the fix is on the way on the develop branch, will be included in next release
Author
Owner

@electric-m commented on GitHub (Nov 6, 2024):

Ok, Great!

<!-- gh-comment-id:2460781063 --> @electric-m commented on GitHub (Nov 6, 2024): Ok, Great!
Author
Owner

@electric-m commented on GitHub (Nov 29, 2024):

Can I already use ARM64 by building with the Dockerfile from the dev branch, or do I have to wait for 0.3.x?

<!-- gh-comment-id:2508100708 --> @electric-m commented on GitHub (Nov 29, 2024): Can I already use ARM64 by building with the Dockerfile from the dev branch, or do I have to wait for 0.3.x?
Author
Owner

@danielehrhardt commented on GitHub (Jan 19, 2025):

Some Updates here?
@eduardolat

<!-- gh-comment-id:2600852299 --> @danielehrhardt commented on GitHub (Jan 19, 2025): Some Updates here? @eduardolat
Author
Owner

@eduardolat commented on GitHub (Feb 6, 2025):

Guys, I'm pleased to inform you that this issue has been resolved as of v0.4.0 which you can start using now.

I've improved the way images are built and tested thanks to the new ARM runners on github actions.

I've also tested the resulting images myself on an ARM VPS with an Ampere processor.

I hope you like it.

<!-- gh-comment-id:2640336383 --> @eduardolat commented on GitHub (Feb 6, 2025): Guys, I'm pleased to inform you that this issue has been resolved as of v0.4.0 which you can start using now. I've improved the way images are built and tested thanks to the new ARM runners on github actions. I've also tested the resulting images myself on an ARM VPS with an Ampere processor. I hope you like it.
Author
Owner

@electric-m commented on GitHub (Feb 6, 2025):

Guys, I'm pleased to inform you that this issue has been resolved as of v0.4.0 which you can start using now.

I've improved the way images are built and tested thanks to the new ARM runners on github actions.

I've also tested the resulting images myself on an ARM VPS with an Ampere processor.

I hope you like it.

Thank you so much, it is awesome!

<!-- gh-comment-id:2640640192 --> @electric-m commented on GitHub (Feb 6, 2025): > Guys, I'm pleased to inform you that this issue has been resolved as of v0.4.0 which you can start using now. > > I've improved the way images are built and tested thanks to the new ARM runners on github actions. > > I've also tested the resulting images myself on an ARM VPS with an Ampere processor. > > I hope you like it. Thank you so much, it is awesome!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/pgbackweb#18
No description provided.