rstudio / rstudio-docker-products

Docker images for RStudio Professional Products
https://hub.docker.com/u/rstudio
MIT License
66 stars 56 forks source link

Add Workbench session init container image #862

Closed skyeturriff closed 3 weeks ago

skyeturriff commented 3 weeks ago

Part of https://github.com/rstudio/rstudio-pro/issues/6920

Hoping to get some early(ish) feedback on adding a new image. I know this might be a bit awkward given this repo is in a bit of transition, so want to help mitigate any headaches/future pains where I can and make sure I'm doing things properly!

This image will be the new init container as part of Workbench's efforts to improve session components. I used connect-content-init as my example for how to set this up.

So far I've only added a new bake target for a daily build. I added this to the build-manual and build-bake-preview github workflows.

NOTE This also updates the rstudio_workbench_daily branch to kousa dogwood in get-version.py

I've tested this locally via

just preview-bake workbench-session-init-daily
mkdir init
docker run --rm -v $(pwd)/init:/mnt/init rstudio/workbench-session-init-preview:workbench-session-init-jammy-2024.11.0-daily-328.pro3

I also included a basic goss test.

CLAassistant commented 3 weeks ago

CLA assistant check
All committers have signed the CLA.

github-advanced-security[bot] commented 3 weeks ago

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

bschwedler commented 3 weeks ago

Will this also help us reduce what is included in the session image?

skyeturriff commented 3 weeks ago

Will this also help us reduce what is included in the session image?

@bschwedler That's the goal, yes! We'll use the init container to load all the session-specific components( vscode, rsession, rserver-launcher, etc.) into the session image, so the session image itself only needs to include the basics (system dependencies, R, python, etc.). Zach's prototype includes an example "base" session image here

skyeturriff commented 3 weeks ago

I'm going to merge this in as-is so we can start to get dailies for testing, and address what's remaining (adding the release build, swapping out the run script, a more robust goss test) in follow-up PR(s)

zachhannum commented 3 weeks ago

@ianpittwood @bschwedler does the repo need to be created manually on the dockerhub side of things? https://github.com/rstudio/rstudio-docker-products/actions/runs/11611641762/job/32333438273#step:4:1398

ianpittwood commented 3 weeks ago

@ianpittwood @bschwedler does the repo need to be created manually on the dockerhub side of things? https://github.com/rstudio/rstudio-docker-products/actions/runs/11611641762/job/32333438273#step:4:1398

Oh yes, let me go do that for you guys.

ianpittwood commented 3 weeks ago

@zachhannum @skyeturriff it had a successful build now to Dockerhub.