root-project / root-docker

Docker recipes for ROOT
30 stars 33 forks source link

publish images to GitHub container registry #36

Open petricm opened 3 years ago

petricm commented 3 years ago

Since there is now a rate limit on dockerhub , it would be good to publish to GitHub Container Registry since there is no rate limit for GitHub Actions.

The problems is that "Unauthenticated (anonymous) users will have the limits enforced via IP." and "unauthenticated users: 100 pulls per 6 hours", so depending on the node you land on you might hit the limit.

eguiraud commented 3 years ago

Hi, thank you for the suggestion, we'll look into it. Manpower on ROOT docker images is fairly limited, and I think the proper way to do this is to move our docker builds from dockerhub automated builds to GitHub actions, so we can publish to both the GitHub container registry and to dockerhub using the same infrastructure.

In the meanwhile I would suggest running your github actions as an authenticated dockerhub user, that gives you 800 pulls per day.

lobis commented 2 years ago

Hi, thank you for the suggestion, we'll look into it. Manpower on ROOT docker images is fairly limited, and I think the proper way to do this is to move our docker builds from dockerhub automated builds to GitHub actions, so we can publish to both the GitHub container registry and to dockerhub using the same infrastructure.

In the meanwhile I would suggest running your github actions as an authenticated dockerhub user, that gives you 800 pulls per day.

Hello @eguiraud,

I am the author of https://github.com/lobis/docker-root-geant4-garfield, a repository to host Dockerfiles / images with ROOT, Geant4 and Garfield installations which I use for development and also can be used for testing. We are also in the process of using these images in our pipeline in https://github.com/rest-for-physics, and they can be used by anyone who wants!

This repository builds the images via GitHub actions almost automatically (I use manual dispatch, selecting each dependency version, but it could be automated). You can see this here. I publish the images to DockerHub and GitHub Container Registry automatically via this action.

I can help you migrate to GitHub actions if you are interested as I have most of the work already done. I could also help you set up some testing pipeline for the images in case you don't have one already.

By the way I don't use your official image as base image since you don't offer a version with Ubuntu and C++17 😅 I think it would be useful to have one. I found a related issue but as I understand it is already solved so perhaps it can now be build?

eguiraud commented 2 years ago

Thank you for the help @lobis

I don't use your official image as base image since you don't offer a version with Ubuntu and C++17

The default image is C++14, but e.g. the conda and fedora flavors are C++17. We could think of providing an ubuntu image with ROOT built for C++17 but it would have to compile ROOT from source, which is annoying to do in a CI...