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

Improve general docker interoperability #2078

Open
torbjorn opened this issue Jan 16, 2025 · 0 comments
Open

Improve general docker interoperability #2078

torbjorn opened this issue Jan 16, 2025 · 0 comments

Comments

@torbjorn
Copy link

torbjorn commented Jan 16, 2025

When setting up R in containers I repeatedly end up implementing elaborate hacks to make renv integrate seemlessly and efficiently. These are typically related to:

  • where do I put the library
  • handle cache efficiently
  • binary incompatibilities between ubuntu packages and renv cache
  • preinstall renv in the expected location during docker build
  • doing restore in build or in post-build scripts?
  • renv::restore never succeeds when rebuilding an image a year later

The renv project has been very forthcomming when I have asked for specific changes that makes a big difference to running renv in a container, but it's in a way a never ending story.

Perhaps a "docker task force" could be useful, a group that would maintain recomended reference implementations of renv functionality in docker based projects. They would stay informed by (or come from) core renv development and ideally advice on future renv development from a docker perspective. Things they'd maintain would typically include:

  • rootless or rootfull docker
  • do or do not use renv cache to speed up restore
  • renv cache inside the docker context or outside of
  • restore in build or post-build
  • run as root or a local dockeruser
  • pak - with and without
  • more...

EDIT:

There is already this articlye, but in many ways it only scratches the surface of these issues:
https://rstudio.github.io/renv/articles/docker.html

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

1 participant