rocker-org / rocker

R configurations for Docker
https://rocker-project.org
GNU General Public License v2.0
1.45k stars 273 forks source link

Does r2u fit into Rocker? #496

Closed eddelbuettel closed 1 year ago

eddelbuettel commented 2 years ago

The r2u project is still fairly new, but appears (from glancing at my web server logs) to be useful to a few people. It contains two Dockerfiles for test / use / demo which we could bring over here. But I don't mean to impose...

Maybe we can discuss here. No rush or hurry.

eitsupi commented 2 years ago

I was wondering if we could switch rocker/r-bspm installation to r2u.

eddelbuettel commented 2 years ago

Me too :)

On the other hand the existing launchpad setup does not really hurt. Additional PPAs "theoretically" delay operations but if one looks for at example at the (dozen plus) repositories set up by GitHub Action for Ubuntu one realizes that it just gives free options. So I am a little hesitant to rush this as r-bspm has also become a building block. Maybe for now r2u on top of r-bspm is better. I really don't know at this point.

grantmcdermott commented 1 year ago

Adding my support for this, since I think Rocker is the natural place ppl will look for R-based images. (Though, I would probably still maintain bspm as a separate image.)

On a related note, @eitsupi do you perchance have an r2u devcontainer / codespaces repo? My own quick attempts keep build failing for some reason or another, and I'd love to share a codespaces version with some colleagues. (I promised @eddelbuettel I'd promote it some time ago... 😬)

eddelbuettel commented 1 year ago

It will happen, esp as @eitsupi is moving towards it / using it for devcontainers.

But I need clean up and clarify the layer of r-ubuntu (nothing but R), r-apt (adds c2d4u, may be redundant), r-bspm (ditto). I think we can a simpler setup, maybe with BSPM but also on env var to turn it (cf fiasco in arrow CI that I caused by accidentally pushing r-bspm to tag r-ubuntu).

This term is a teaching term for me so a few things got pushed to the side. You can use r2u just fine today, even with an Internet2 mirror. I think we will bring it under the Rocker umbrella (but I also do not want to force the hands of my Rocker Project colleagues so it has to be consensual).

eitsupi commented 1 year ago

@grantmcdermott Please see our recently updated website. https://rocker-project.org/images/devcontainer/features.html

The following devcontainer.json is sufficient to configure r2u on an Ubuntu-based image.

{
    "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
    "features": {
        "ghcr.io/rocker-org/devcontainer-features/r-apt:latest": {}
    }
}

The problem is there is no easy way to add apt packages after configuring r2u (we can use postCreateCommand but it will be like sudo apt update && sudo apt install ..., very long). Related to https://github.com/devcontainers/features/issues/67#issuecomment-1320719320

And, there is currently no option to configure bspm. (rocker-org/devcontainer-features#69)

grantmcdermott commented 1 year ago

Thanks both. I'm still running in an error with that simple devcontainer.json file, but will file a separate issue. Again, very grateful for all the work you folks put in for maintaining the Rocker project.

eitsupi commented 1 year ago

FYI, since there appeared to be no plans to create it in other repositories, I created the apt-packages Dev Container Feature. https://github.com/rocker-org/devcontainer-features/tree/main/src/apt-packages

I believe this can be combined with r2u to install any R package on Dev Containers without writing Dockerfiles.

grantmcdermott commented 1 year ago

I guess that this can be closed now in light of https://github.com/rocker-org/r2u?

Following on from our conversation above, one additional request from this grateful user would be to add a dedicated r2u devcontainer image to the existing list.

eddelbuettel commented 1 year ago

Good catch, will close.

As there is a finite number of things I should do or take on, and especially as as I don't use vscode or devcontainers I am not likely do this but this sounds like another possible addition as maybe a wiki entry or write-up or contributed Dockerfile (possibly as a 'documentation / demo' one off or in another repo -- just spitballing here). Similar in spirit to the recent suggestion to add the rstudio server package (cf https://github.com/rocker-org/r2u/issues/1).

eitsupi commented 1 year ago

add a dedicated r2u devcontainer image to the existing list.

This should require a little work on https://github.com/rocker-org/devcontainer-images. Contributions are welcome!