These container images provide the session runtime environments for Workbench in Kubernetes. Each image bundles a specific R and Python version pair, along with Jupyter, Quarto, and Posit Professional Drivers, so that user sessions run in an environment matching the user's language requirements.
Tip
Deploying on Kubernetes? Try the Posit Workbench Helm chart!
| Maintained by | the Posit Docker team |
| Where to get help | GitHub Issues, Images Discussion Board, the Posit Community Forum, Posit Support |
| Where to file issues | https://github.com/posit-dev/images-workbench/issues |
| Source | https://github.com/posit-dev/images-workbench |
| License | MIT |
| Product documentation | Posit Workbench documentation, Job Launcher overview, Kubernetes integration guide |
For Kubernetes deployments, Workbench uses several images together. See the repository README for Helm configuration.
| Image | Description | Docker Hub | GHCR |
|---|---|---|---|
workbench | The Posit Workbench server | posit/workbench | posit-dev/workbench |
workbench-session-init | Init container providing session runtime components | posit/workbench-session-init | posit-dev/workbench-session-init |
workbench-positron-init | Init container providing Positron IDE components | posit/workbench-positron-init | posit-dev/workbench-positron-init |
Do not run these images directly. The Workbench Job Launcher schedules them as session pods when users start sessions on Kubernetes. Each pod runs an interactive session (RStudio Pro, VS Code, Positron, or Jupyter) using the R and Python versions baked into the image. You should pick the image(s) with the R and Python versions that best match your needs, extend the image with additional libraries and packages you require, or build your own from scratch. The workbench-session-init and workbench-positron-init init containers supply the session runtime components that the session image itself does not bundle.
Configure these images as session images for Workbench through any of the following methods:
rstudio/rstudio-workbench Helm chart includes a default set of session images. See the repository README for configuration details.Posit publishes images to:
docker.io/posit/workbench-sessionghcr.io/posit-dev/workbench-sessionUbuntu 24.04 is the default OS. The Standard (std) variant is the default; tags without a variant suffix resolve to it.
The tag format is: R{r_version}-python{python_version}-{os}[-{variant}]
Examples:
R4.5.2-python3.14.3-ubuntu-24.04 — R 4.5.2, Python 3.14.3, Ubuntu 24.04, standard variantR4.5.2-python3.14.3-ubuntu-24.04-std — Explicit standard variantR4.5.2-python3.14.3-ubuntu-24.04-min — Minimal variantR4.4.3-python3.12.12-ubuntu-22.04 — R 4.4.3, Python 3.12.12, Ubuntu 22.04, standard variantR4.3.3-python3.11.15-ubuntu-24.04 — R 4.3.3, Python 3.11.15, Ubuntu 24.04, standard variantPosit publishes Ubuntu 24.04 session images for both linux/amd64 and linux/arm64. Pull the same tag from either platform. Docker selects the matching manifest automatically. Posit publishes Ubuntu 22.04 session images for linux/amd64 only.
Warning
Posit builds these images for both `linux/amd64` and `linux/arm64`, but builds the `workbench` and `workbench-session-init` images for `linux/amd64` only. `linux/arm64` builds for those images remain in developer preview until ARM64 platform support is officially added for Workbench.
Each image includes:
| Component | Path |
|---|---|
| R | /opt/R/{version}/bin/R |
| Python | /opt/python/{version}/bin/python3 |
| JupyterLab | Installed under the bundled Python |
| Quarto | /opt/quarto/bin/quarto |
| TinyTeX | /opt/TinyTeX/bin/ |
| Posit Professional Drivers | /opt/rstudio-drivers/ |
These images do not bundle the Workbench session components themselves. The workbench-session-init init container provides those components at runtime through a shared volume.
Two variants are available:
| Variant | Description |
|---|---|
Standard (std) | Opinionated image, runs out of the box. Bundles R, Python, Jupyter, Quarto, TinyTeX, and Posit Professional Drivers, plus a curated set of system development libraries that cover the most commonly used CRAN and PyPI packages. |
Minimal (min) | Same runtime stack as Standard (R, Python, Jupyter, Quarto, TinyTeX, Posit Professional Drivers) without the additional system development libraries. Use this variant as a starting point for custom images when you want to control which system libraries are present. |
Both variants ship the same R, Python, Jupyter, Quarto, TinyTeX, and Posit Professional Drivers versions for a given tag. The Containerfiles in this repository under workbench-session/matrix/ document the exact packages installed in any tag.
See extending examples for how to build on the Minimal image.
These images do not declare a USER. Containers start as root. The Workbench Job Launcher manages the runtime user when scheduling session pods, dropping privileges to the signed-in user as configured by the Workbench administrator.
Use any tag as a base for a derived image with additional dependencies. For example, an image with Tidyverse pre-installed:
FROM ghcr.io/posit-dev/workbench-session:R4.5.2-python3.14.3-ubuntu-24.04
RUN /opt/R/4.5.2/bin/R -e 'install.packages("tidyverse", repos = "https://p3m.dev/cran/__linux__/noble/latest")'
See session extending examples for additional patterns, including pre-installing Python packages and system dependencies.
These images replace the legacy rstudio/workbench-session and rstudio/r-session-complete images. The runtime tools are unchanged. R, Python, Jupyter, Quarto, and Posit Professional Drivers install at the same paths under /opt, and Workbench schedules sessions into these images the same way. The differences are in how Posit publishes, tags, and packages the images and their session components.
Posit published the legacy images as rstudio/workbench-session and rstudio/r-session-complete on Docker Hub and at the equivalent paths on GitHub Container Registry, with tags like ubuntu2204-r{R1}_{R2}-py{Py1}_{Py2} for linux/amd64 only. Update your image references to one of the replacement locations and pick a tag that pins to your desired R, Python, and OS versions. See Image tags and Architectures.
Legacy workbench-session tags bundled two R versions and two Python versions per image, for example ubuntu2204-r4.4.1_4.3.3-py3.12.6_3.11.10. Replacement tags pin a single R and Python version per image and follow R{r_version}-python{python_version}-{os}, for example R4.5.2-python3.14.3-ubuntu-24.04. To cover the same set of R and Python combinations, configure Workbench to use multiple session images instead of one.
The legacy images installed Quarto under /opt/quarto/{version}/bin/quarto. The new workbench-session images install Quarto under /opt/quarto/bin/quarto from the Posit Apt repository. quarto and its installed tools are still symlinked to the system PATH. Update any references to the Quarto path accordingly.
The legacy r-session-complete image bundled the Workbench session components directly. The workbench-session image does not. Instead, the workbench-session-init init container delivers session components into the session pod through a shared volume at runtime.
r-session-complete will not be supported by this repository. If you are still using r-session-complete, migrate to the new workbench-session images and enable the workbench-session-init init container. See the workbench-session-init README for additional details.
The legacy rstudio/workbench-session image already followed this init container pattern, so this migration step does not apply when moving from rstudio/workbench-session.
/optReview these images before using them in production. Organizations with specific Common Vulnerabilities and Exposures (CVE) or vulnerability requirements can rebuild these images to meet their security standards.
Posit rebuilds published images weekly for Posit product editions under active support to pull in operating system patches.
These images contain third-party software (R, Python, Jupyter, Quarto, TinyTeX, Posit Professional Drivers, system libraries, and their transitive dependencies) under various licenses. You are responsible for confirming that these images and their dependencies comply with all applicable licenses.
Content type
Image
Digest
sha256:4210e146d…
Size
1.6 GB
Last updated
2 days ago
docker pull posit/workbench-session