imgproxy-docker-base
imgproxy-docker-base copied to clipboard
Adding support for Power Linux (ppc64le) platform
Hi Team,
We require support for imgproxy-docker-base:v3.2.4 image on Power platform, as this image acts as a base image for darthsim/imgproxy:latest which in turn acts as a dependency for one of the package we are currently working on. We have the required changes ready with us. Please guide as to how we can enable support for imgproxy-docker-base:v3.2.4 ( tagged as darthsim/imgproxy-base:v3.2.4 ) image on Power.
Hey!
Adding ppc64le support shouldn't be something very difficult, you just search through the scripts for TARGET_ARCH and add ppc64le support everywhere you found this variable. On the other hand, this adds complexity to maintenance: I'll need to make sure all the dependencies can be properly built for ppc64le and work without any bugs. Arm64 support makes sense as we now have widely used Apple Silicon and Amazon Graviton chips, yet I'm not sure about ppc64le.
Hey,
Attaching below the patch file, reflecting the changes which helps to build imgproxy-docker-base image locally on power machine. We would like the CI build enabled for imgproxy-docker-base image (tagged as darthsim/imgproxy-base:v3.2.4) and we see that google cloud build is been used as the CI which does support multi-arch build, with your help we could get the CI build enabled for Power architecture. Thank you ! ppc64le_imgproxy-docker-base.patch.txt
Hi Reynold,
Can I ask you, where imgproxy built for ppc64le is going to be used? As I said before, support of additional CPU architecture doesn't end with adding it to build scripts. All the dependencies should be able to be built for all the supported architectures and work well after it. Support of amd64 and arm64 is a must as they are widely used. Yet I didn't hear about popular machines powered by PowerPC for years. I appreciate your effort in adding ppc support, but I'm not sure if my effort in maintaining it and the additional costs of building images for it will pay off. I already bumped into an issue when one of the used packages couldn't be built for arm64. That time the issue was fixed by the package maintainer, but I'm not sure they would fix it for ppc.
Hi @DarthSim ,
Addressing a few of your concerns:
- "Can I ask you, where imgproxy built for ppc64le is going to be used?"
- Imgproxy is used as a dependency for deploying Vanilla(a powerfull and simple discussion forum) which we plan to use in our networks in the near future, and as mentioned before imgproxy is based on imgproxy-docker-base image.
- "All the dependencies should be able to be built for all the supported architectures and work well after it."
- As mentioned above, the patch file I provided above does allow me to build the image successfully on Power machine. Although I do understand your concern regarding build complications and would like to know which dependencies in particular concern you. Once we are confident, we can also go ahead with enabling the CI build for imgproxy-docker-base image for Power.
- "Support of amd64 and arm64 is a must as they are widely used. Yet I didn't hear about popular machines powered by PowerPC for years."
- Many of the top 50 super computers are still Linux on Power, it is used to run many operations at major banks across the world, it is used on Wall Street and other heavy financial trading environments, it is used for managing retail operations as some of the worlds biggest retailers, the list goes on and on. This particular effort is part of our work with Red Hat to broaden their portfolio to the Power systems as well.
Hope this clears the air! Let me know if you have any other questions or doubts!
Although I do understand your concern regarding build complications and would like to know which dependencies in particular concern you.
That's the problem - I don't know. As I mentioned before, one of the versions of one of our dependencies suddenly stopped working on arm64 once. If something like this will happen for ppc64le or if I'll need a dependency that doesn't work on ppc64le, it'll make problems delivering new features to amd64/arm64 users which is an absolute majority of users. Adding new features to imgproxy obliges imgproxy team to maintain them. That's why we avoid adding features unless we consider them useful for a good part of users or one of our enterprise users needs them. imgproxy is an open-source software after all, and everyone can fork it and add a needed feature.
Also, we have a pretty obvious policy: all the features of imgproxy should be included in imgproxy Pro. This implies that we'll have to build and store images for ppc64le. Considering the fact that the base image build takes a lot of time, its size is pretty big, and we have no Pro users who run or are going to run imgproxy on ppc64le, this looks like unneeded expenses. Hope for your understanding.