pharmaR / thevalidatoR

A mirror of insightsengineering/thevalidatoR for experimentation in support of the R Validation Hub repositories working group
MIT License
1 stars 2 forks source link

Choosing reference images #7

Open dgkf opened 7 months ago

dgkf commented 7 months ago

Discussed a couple times, but just to get the ideas on paper.

We've referred to this "reference" image for quite a while. Even without all the details of exactly how this should look, we should choose some images that we want to use for the initial pilots.

Just in terms of requirements, I think we should aim to:

If we want to pull something off-the-shelf, the best options I can think of would be either the rocker images or the r-hub.

I feel like rocker seems to be widely used for CI/CD, but R-hub might be a better drop in replacement for a CRAN-like system which may need to handle a broader set of system library dependencies. The downside is that the R-hub containers are a bit more all-inclusive (larger image size), but this might be a necessary design choice for us to manage arbitrary packages.

The more I think about it, the more I'm leaning toward the R-hub containers, but I want to raise the question to the team before settling on a choice.

wiligl commented 7 months ago

Thanks, great start! /Wilmar

yannfeat commented 7 months ago

I have had issues related to system dependencies when trying to install some packages on rocker images. I think we want indeed an image that can handle as many relevant system dependencies as possible indeed, so I have a strong preference for r-hub. It might take more storage space, but storage space is cheap whereas our time is not, and I think that r-hub will help us save the latter. I consider rocker to be indicated for reproductive analyses, where we can afford to curate the derived image manually, but it is not the best set of images for general automation in my opinion.

wiligl commented 7 months ago

Hi, from a quick it seems rocker and r-hub images both use docker as virtualization technology. If there are differences between the quality of handling system dependencies, then these should be handled in the way the docker images are built. From my limited perspective, Rocker seems to be the much more popular set of images, which also defined the official r-base image on docker hub. However, my knowledge is too limited to give robust strategic advice here.

Some learnings regarding docker/rocker from [1,2]:

Refs: [1] Boettiger, C., & Eddelbuettel, D. (2017). An Introduction to Rocker: Docker Containers for R. The R Journal, 9(2), 527. https://doi.org/10.32614/RJ-2017-065 [2] Nüst, D., Eddelbuettel, D., Bennett, D., Cannoodt, R., Clark, D., Daróczi, G., Edmondson, M., Fay, C., Hughes, E., Kjeldgaard, L., Lopp, S., Marwick, B., Nolis, H., Nolis, J., Ooi, H., Ram, K., Ross, N., Shepherd, L., Sólymos, P., … Xiao, N. (2020). The Rockerverse: Packages and Applications for Containerisation with R. The R Journal, 12(1), 437–461. [3] https://rocker-project.org/use/extending.html