Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linux/arm64 docker images missing on Docker Hub #92

Open
wrobelda opened this issue Jul 28, 2022 · 4 comments
Open

linux/arm64 docker images missing on Docker Hub #92

wrobelda opened this issue Jul 28, 2022 · 4 comments

Comments

@wrobelda
Copy link
Contributor

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?

@wrobelda wrobelda changed the title linux/arm64 docker images missing linux/arm64 docker images missing on Docker Hub Jul 28, 2022
@lwthiker
Copy link
Owner

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.

@wrobelda
Copy link
Contributor Author

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).

@wrobelda
Copy link
Contributor Author

wrobelda commented Jul 28, 2022

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 :)

@lwthiker
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants