-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Add aarch64 docker image #4599
Comments
that would mean finding an aarch64 box to build on... |
It should not be too hard to use QEMU to build foreign architectures: |
|
If a multiarch pipeline is ever created, please consider also including the Its a prevalent architecture, used in systems such as the official Raspberry Pi OS (regardless of SoC architecture) and a bunch of libre and mainlined chips like the Allwinner A20. I believe Docker Hub's official images have started becoming multi-arch a while ago, so keeping the parent image Thank you for your time. |
There are aarch64 and armhf server providers such as Scaleway. It should be extremely easy to build the docker image on them and provide prebuilt images. |
I've opened a PR that adds support for multi-arch images: #7397 |
Like @Starbix, i have a branch similar that produces multi-arch images on circleci but using the new debian base image. The issue is still the compilation of the wheels. Takes 95ish minutes on my branch to build amd64, arm64 and arm/v7 docker images. The pip install only seems to install amd64 binaries. So unless im missing something we have 3.5 options I can think of;
FTR, 3 is my favourite choice, but more moving parts isn't always good, I've seen online precompiled wheels via sites such as - https://www.piwheels.org/ but that might not even work here. I'm quite eager to get multi-arch images ready, so happy to help with this. |
do you know why the pip install does not install wheels for the arm builds? |
i believe they dont have precompiled arm versions in the regular pip repo, hence the existence of the above piwheels site. We can also rule out 2a above as well, amd64 image made in 3mins flat, replaced by the 2 arm images 90mins later. One other option is cross compiling the arm wheels, but i need to figure out a nice way of getting the arm versions of python on the host to target, not sure multilib debian had that in mind. Compiling it from scratch probably not a good time saver either. |
ah right.
could we upload the amd64 image when it's ready, and then upload it again along with the other two? |
Funny, I have thought this too, the only potential issue being people with say something like watchtower where it will restart twice in 90mins every latest tag which is far from ideal. So if the docker tag doesnt change we might get away with it? let me test that. |
I think we have a winner @richvdh... https://hub.docker.com/repository/docker/maquis196/synapse/tags?page=1 Same docker run, test_latest was to make sure the original tag was saved, both are 27aff868e811 so end users wont notice they way its getting updated. I'll whip up the PR for you now edit - in case the files are updated by more testing - |
ive raised #7921 which is similar to the above PR, but made it easier to specify which archs we want on which job, and the build dependencies in the builder docker image, now that were on debian. |
I'll note that according to https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/, this does not appear to be the case if one is careful about how one labels the images, and then builds a separate manifest (see 'The hard way with docker manifest'). However, building the amd64 image twice is probably fine. |
fixed by #7921 |
The official docker image matrixdotorg/synapse only works with x86_64. I successfully started the docker file on my aarch64 machine by simply changing the images from
docker.io/python
todocker.io/arm64v8/python
in the Dockerfile.Please provide this prebuilt as well :)
The text was updated successfully, but these errors were encountered: