Open wrobelda opened 1 year ago
Yeah it's built just fine, but since building Docker images for arm64 on an x86 machine requires emulation, the build is extremely slow. On my local machine it took upward of 1.5 hours, which means it will be even slower on the GitHub action runners. That's why I haven't added it yet, as it will slow down the CI significantly.
Maybe we should use an external CI provider for that? I'm not sure yet.
Frnakly speaking, I have no idea, but one thing to consider would be splitting the process into cross-compiling the code and using emulation for the image building stage only? See https://www.docker.com/blog/multi-platform-docker-builds ("Cross-Compilation" section).
One more thing comes to mind: why do you rebuild nss, brotli, nghttp2, etc when building a docker file? Wouldn't apt source curl
, apt install build-essentials curl
, patch
, debuild
approach work better? This way you could keep the compilation to the minimum and end up with a clean image?
And, with that in mind, have you considered setting up a deb repository? I realize this is extra work, but it vastly simplifies the usage from the user's perspective :)
One more thing comes to mind: why do you rebuild nss, brotli, nghttp2, etc when building a docker file
nss is always built statically into curl-impersonate to ensure that the TLS signature is the expected one. If the binary is used on another system with a different nss version, I can't ensure the TLS signature will be the same. It used to be my thinking with respect to brotli & nghttp2 as well, though I now less believe there is a room for errors if a different versions of these libraries is used. So I might in the future just link them dynamically as you suggested. Their build times are insignificant (as compared to nss for example) so I didn't put the time in to change it yet.
And, with that in mind, have you considered setting up a deb repository? I realize this is extra work, but it vastly simplifies the usage from the user's perspective :)
Yes, I hope to have rpm & deb set up in the future. As always, any help with that regard will be highly appreciated.
Is there any reason why you're not publishing
linux/arm64
images to Docker Hub? I was able to successfully build all the ones I needed locally, so I assume they work just fine?