Container images for Posit Connect.
Note
These images are in preview as Posit migrates container images from rstudio/rstudio-docker-products. The existing images remain supported.
| Tool | Required for | Install |
|---|---|---|
| Docker | Running containers locally | Get Docker |
| Helm | Deploying on Kubernetes | Install Helm |
| kubectl | Deploying on Kubernetes | Install kubectl |
| Product license | Running Posit Connect | Licensing FAQ |
Additional Posit container images are published to Docker Hub and GitHub Container Registry.
For local Docker, you only need the connect image. The connect-content and connect-content-init images are for Kubernetes deployments, where published content runs in separate pods from the Connect server.
- Posit Connect — The Connect server
- Connect Content — Runtime images for executing content (Kubernetes)
- Connect Content Init — Init container for Kubernetes deployments
See the Connect installation guide for full setup instructions.
Use the Posit Connect Helm chart to deploy on Kubernetes.
helm repo add rstudio https://helm.rstudio.com
helm repo updateCreate a Kubernetes secret from your license file, then configure the chart in your values.yaml:
kubectl create secret generic posit-connect-license \
--from-file=license.lic=/path/to/license.licThe executionEnvironments list uses declarative management (Connect 2026.03.0+). Unlike the legacy customRuntimeYaml, changes take effect on every helm upgrade without requiring a pod restart or database reset. Setting customRuntimeYaml to an empty images list prevents the chart from bootstrapping its default set of 12 content images on first start.
image:
repository: ghcr.io/posit-dev/connect
tag: "2026.03.0"
license:
file:
secret: posit-connect-license
launcher:
# Suppress the default runtime.yaml bootstrap so only
# executionEnvironments images are registered.
customRuntimeYaml: |
name: Kubernetes
images: []
defaultInitContainer:
repository: ghcr.io/posit-dev/connect-content-init
tag: "2026.03.0"
executionEnvironments:
- name: ghcr.io/posit-dev/connect-content:R4.5.2-python3.14.3-ubuntu-24.04
title: "R 4.5.2 / Python 3.14.3"
matching: any
r:
installations:
- version: "4.5.2"
path: /opt/R/4.5.2/bin/R
python:
installations:
- version: "3.14.3"
path: /opt/python/3.14.3/bin/python3
quarto:
installations:
- version: "1.8.27"
path: /opt/quarto/1.8.27/bin/quarto
- name: ghcr.io/posit-dev/connect-content:R4.4.3-python3.12.12-ubuntu-24.04
title: "R 4.4.3 / Python 3.12.12"
matching: any
r:
installations:
- version: "4.4.3"
path: /opt/R/4.4.3/bin/R
python:
installations:
- version: "3.12.12"
path: /opt/python/3.12.12/bin/python3
quarto:
installations:
- version: "1.8.27"
path: /opt/quarto/1.8.27/bin/quartoContent image tags follow the pattern R{r_version}-python{python_version}-{os}. Append -pro for images with Posit Professional Drivers.
Install the chart:
helm upgrade --install connect rstudio/rstudio-connect --values values.yamlSee the full chart documentation for all available values.
You can interact with this repository in multiple ways:
- Build container images directly from the Containerfile.
- Use the
bakeryCLI to manage and build container images. - Extend the functionality by using the Minimal base image (see examples).
You can build OCI container images from the definitions in this repository using one of the following container build tools:
The root of the bakery project is used as the build context for each Containerfile.
Here, the bakery.yaml file, or project, is in the root of this repository.
PCT_VERSION="2026.02"
# Build the standard Connect image using docker
docker buildx build \
--tag connect:${PCT_VERSION} \
--file connect/${PCT_VERSION}/Containerfile.ubuntu2404.std \
.
# Build the minimal Connect image using buildah
buildah build \
--tag connect:${PCT_VERSION} \
--file connect/${PCT_VERSION}/Containerfile.ubuntu2404.min \
.
# Build the minimal Connect image using podman
podman build \
--tag connect:${PCT_VERSION} \
--file connect/${PCT_VERSION}/Containerfile.ubuntu2404.min \
.The structure and contents of this repository were created following the steps in bakery usage.
Additional documentation:
- Configuration Reference —
bakery.yamlschema and options - Templating Reference — Jinja2 macros for Containerfile templates
- CI Workflows — Shared GitHub Actions workflows for building and pushing images
Build prerequisites
-
bakeryjust install bakery
-
gossanddgossfor running image validation testsjust install-goss
By default, bakery creates an ephemeral JSON bakefile to render all containers in parallel.
bakery buildYou can view the bake plan using bakery build --plan.
You can use CLI flags to build only a subset of images in the project.
After building the container images, run the test suite for all images:
bakery run dgossYou can use CLI flags to limit the tests to run against a subset of images.
This repository is part of the Posit Container Images ecosystem. To extend the Minimal image with additional languages or system dependencies, see the extending examples. For shared build tooling and CI workflows, see images-shared.
We invite you to join us on GitHub Discussions to ask questions and share feedback.
If you encounter any issues or have any questions, please open an issue. We appreciate your feedback.
We expect all contributors to adhere to the project's Code of Conduct and create a positive and inclusive community.
Posit Container Images and associated tooling are licensed under the MIT License