librespeed / speedtest-rust

Rust backend for LibreSpeed
GNU Lesser General Public License v3.0
38 stars 7 forks source link

[CI] Publish docker images to `ghcr.io` #8

Closed raldone01 closed 1 month ago

raldone01 commented 1 month ago

Microsoft provides free CI compute so why not use it to automatically build releases and push them to the ghcr.io?

I suggest updating the readme. Adding a commented out image: line to the docker-compose files would be nice too.

I also took the liberty to use cargo install for a predictable binary destination.

There seem to be some issues with the build scripts of the libm create on alpine which should be further investigated. I just worked around them with symlinks.

I split it up into two commits to ease review.

Should you want a :master docker tag, you can just add to feat/docker under the triggers. If you want me to provide updates/support down the line it would be nice if you kept the feat/docker trigger.

If you want any changes let me know.

I could also touch up the normal release ci with some cache if wanted.

PS: Sorry for any notification spam. I thought I was done way earlier but decided to take it to the next level.

SudoDios commented 1 month ago

Hi @raldone01 Thank you for your suggestion. But I am not very professional in using Docker. That's why I have a few questions: Is it possible to create an image manually (or is it necessary at all)? Can you push in ghcr on the same configuration that is for Docker? I think it's a bit crowded

mickkael commented 1 month ago

I have proposed a patch for the github workflow to build and push the container at the same time as the artifact build and release

raldone01 commented 1 month ago

@SudoDios I went a bit overboard with the CI. It's really fast though and does fancy caching and parallel builds.

I understand if it is too much for your project.

Yes it is possible to build the image manually. Just run docker buildx build -f <Dockerfile> --platforms <platforms> <context_folder>. You can also manually push to ghcr.io but I have personally never done it.

If you want a simpler but slower CI you can go with the one @mickkael has provided, though I have not looked over it myself.

I will maintain my fork with my CI for the time being though.

Feel free to close this PR.

SudoDios commented 1 month ago

Thank you (@raldone01, @mickkael) for your time and work. As I said, I am not a professional in using Docker, but as far as I have read, maybe a simple CI is enough for this project (because it is light). Although the project is open source for all those who contribute. So our goal is to be the best. I think we should start with a simple CI and then improve it with your help

SudoDios commented 1 month ago

@raldone01 I will close this for now. But I'd be happy if you could help improve Docker in the future Thank you.