pypiserver / pypiserver

Minimal PyPI server for uploading & downloading packages with pip/easy_install

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

arm64 flavored image

cmdjulian opened this issue Β· comments

Is it possible to provide an arm64 based image as well? Your Dockerfile seems to be already compatible with it. I checked it out locally and run a multi-arch build in the root of the repository with docker buildx build -t cmdjulian/pypiserver:v1.5.1 --platform=linux/arm64,linux/amd64 --push . which worked without any problems.

I thinks it's just a matter of adding the architecture, in that case arm64, to the github action ci file. It took quite a while, because building wheels for collected packages: gevent, bcrypt, watchdog, zope.interface is slow in emulated arm64, but in the end it still worked out just fine and the resulting image is usable without any limitions. You can find it as cmdjulian/pypiserver:v1.5.1. For the future there maybe is a way to speed up the compilation in Docker by using pre-compiled architecture specific packages.

One small hint, for running local multi-arch builds, you have to set up the qemu binfmt emulators. For me using arch it was just running sudo pacman -S qemu-user-static-binfmt. For ubuntu it's basically the same with sudo apt install qemu-user-static. Alternatively you can use docker run -it --rm --privileged tonistiigi/binfmt --install all to temporarily add the emulators. This whoever is not persistent throughout reboots.

Great, thank you for the idea @cmdjulian! I will look into this and hope to add support for ARM architectures with a v2.0.x release. I think this is also related to #364 and the work of @isac322 in #381 seems to address this, so I will see how to approach this!

commented

Thanks for looking into it. Do you have any time estimate for the V2 release?

Thanks for looking into it. Do you have any time estimate for the V2 release?

Hey @cmdjulian, looking at the current state of things, I'm hoping to get to this within the coming half-year, aiming probably for the summer/early September. I'll try to plan it a bit better/more realistic during the spring months. I think I'll make an announcement about the roadmap then, so hopefully I can keep you posted :)

Still doesn't exist :(

Saw #381 and it has been 3 years 😞...

Open #553 to support amd64 + arm64 only. It took 30 mins for the arm build during my test run on GitHub Actions, with most of the time spent on building wheel for gevent.

Let me know if there is anything I could do to improve the PR and hopefully get it in 🀞 !

Saw #381 and it has been 3 years 😞...

Open #553 to support amd64 + arm64 only. It took 30 mins for the arm build during my test run on GitHub Actions, with most of the time spent on building wheel for gevent.

Let me know if there is anything I could do to improve the PR and hopefully get it in 🀞 !

Thanks a lot for the PR @cbwchuck! This is now merged πŸ‘
This is great and I'm looking forward to giving it a try πŸ‘

30 minutes sounds like a good reason to revisit gevent-related issues in any case (e.g. #449), hoping that it will be possible to reduce the build time in the future 😊

Let's start with it πŸ‘

Found this: https://hub.docker.com/r/quaisr/pypiserver/tags

It works!

πŸ‘€ Oh that's also a very cool find @caniko, thank you for sharing!

@cbwchuck @caniko could you please check that this has correctly worked for you? Thanks a lot for your efforts πŸ‘

pypiserver/pypiserver:latest

pypiserver/pypiserver:latest

This still has no arm64 support. pypiserver/pypiserver:unstable works.

pypiserver/pypiserver:latest

This still has no arm64 support. pypiserver/pypiserver:unstable works.

Great! That's already good news, thanks for checking @caniko πŸ‘ The latest tag will be pushed with the new version release of pypiserver - I hope to get that one through after adding Python 3.12 support. 🀞

Hey everyone @caniko @cbwchuck @cmdjulian, thanks to your help, we now should have the arm docker images starting from tag v2.1.0. Please check out the releases to find out more details.

Hopefully this solves the most troubles πŸ€ I will close this issue for now but feel free to reopen if you encounter any issues!

Thanks again for helping out 🌟✌️