Docker images for RStudio Professional Products
IMPORTANT: There are a few things you need to know before using these images:
- This image may introduce BREAKING changes; as such we recommend:
- Avoid using the
{operating-system}
tags to avoid unexpected version changes, and - Always read through the NEWS.md file in the appropriate sub-folder to understand the changes before updating.
- Avoid using the
- Outdated images will be removed periodically from DockerHub as product version updates are made. Please make plans to update at times or use your own build of the images.
- These images are meant as a starting point for your needs. Consider creating a fork of this repo, where you can continue to merge in changes we make while having your own security scanning, base OS in use, or other custom changes. We provide instructions for building for these cases.
- Security Note: These images are provided AS IS based on the build environment at the time their product version was released/updated. They should be reviewed and updated before production use. If your organization has a specific set of security requirements related to CVE/Vulnerability severity levels, you should plan to use the instructions for building to clone this repository, and rebuild these images to your specific internal security standards.
- RStudio Workbench Session Images (requires the launcher)
- Product Base Images
- RStudio Connect Session Images (requires the launcher)
IMPORTANT: Do not use these images. They are in preparation for a future release
- solid line / arrow: image inheritance
- dashed line: images related to one another by usage
flowchart TB;
subgraph Product Base Images;
id4("Product Base")
id5("Product Base Pro")
id4-->id5
end
subgraph s1["Connect"];
id1("Connect Image")
id2("Connect Content Init")
id1-.-id2
id5-->id1
end;
subgraph Package Manager;
id3("Package Manager Image")
id4-->id3
end;
subgraph Workbench;
id6("Workbench Image")
id7("r-session-complete")
id5-->id6
id5-->id7
id6-.-id7
end
subgraph s5["Content Images"];
id8("Content Base")
id9("Content Pro")
id8-->id9
end
s1-.-s5
We provide a docker-compose.yml
that could help to spin up default configurations for RStudio Team (all RStudio
products together).
If you are using this locally you need to setup some hostnames to point to localhost
in order for some integrations to
work fine in your browser. In your /etc/hosts
add one line:
127.0.0.1 rstudio-workbench rstudio-connect rstudio-pm
# Replace this with valid licenses
export RSW_LICENSE=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
export RSC_LICENSE=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
export RSPM_LICENSE=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
docker-compose up
As of July 2022, only the RStudio Connect container uses the --privileged
flag for user and code isolation and
security and all other images can be run unprivileged. Please see
RStudio Professional Product Root & Privileged Requirements
for more information.
If you have feedback on any of our professional products, please always feel free to reach out on RStudio Community, to your Customer Success representative, or to sales@rstudio.com.
After you have cloned rstudio-docker-products, you can create your
own containers fairly simply with the provided Justfiles. If you're unfamiliar with just
, please check out
their documentation. If you are unable to use just
in your organization,
most targets in each Justfile can be copy/pasted into your shell and ran there with variables replaced where
appropriate.
We orchestrate all our builds using docker buildx bake
. You can learn more about the tool on
Docker's buildx bake page, however no additional background knowledge is needed on the tool in order
to use it.
To build all images:
just build
Individual images or groups of images can also be built. For example, you can build connect
by running:
just bake connect
Here are the available targets and groups in bake. To build one, use just bake <target>
:
build
- Builds all imagesbase-images
- Buildsproduct/base
andproduct/pro
package-manager
- Buildspackage-manager
connect
- Buildsconnect
workbench
- Buildsworkbench
connect-content-init
- Buildsconnect-content-init
r-session-complete
- Buildsr-session-complete
workbench-for-google-cloud-workstations
- Buildsworkbench-for-google-cloud-workstations
waml-images
- Buildsworkbench-for-microsoft-azure-ml
stack (build, scan, and final)
Preview images and content images are also available to build through the docker-bake.preview.hcl
and
content/docker-bake.hcl
files respectively or use just preview-bake
and just content-bake
.
You can alter what exactly is built by changing workbench/Dockerfile.$OS
, connect/Dockerfile.$OS
,
and package-manager/Dockerfile.$OS
. Keep in mind that product/base
or product/pro
also impact what our default
image builds contain.
You can then run what you've built to test out with the run
target. For instance, to run the workbench container
you have built:
just RSW_LICENSE="<license key>" run workbench
You can also run validation tests on the image using Goss. To run the tests, use
the test
target. For example, to test Connect you can run:
just test connect
Note you must have a license in place, and all other instructions in separate sections are still relevant.
If you have created an image you want to use yourself, you can push to your own image repository system. The images are
named rstudio-workbench
, rstudio-connect
, and rstudio-package-manager
.
The license associated with the RStudio Docker Products repository is located in LICENSE.md.
As is the case with all container images, the images themselves also contain other software which may be under other licenses (i.e. bash, linux, system libraries, etc., along with any other direct or indirect dependencies of the primary software being contained).
It is an image user's responsibility to ensure that use of this image (and any of its dependent layers) complies with all relevant licenses for the software contained in the image.