-
Notifications
You must be signed in to change notification settings - Fork 56
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #874 from rstudio/feature/workbench-session
Feature/workbench session
- Loading branch information
Showing
12 changed files
with
297 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
R_VERSION=4.1.0 | ||
PYTHON_VERSION=3.9.5 | ||
DRIVERS_VERSION=2024.03.0-1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
FROM product-base-pro as build | ||
|
||
ARG DEBIAN_FRONTEND=noninteractive | ||
ARG R_VERSION=4.4.0 | ||
ARG R_VERSION_ALT=4.3.3 | ||
ARG PYTHON_VERSION=3.9.17 | ||
ARG PYTHON_VERSION_ALT=3.8.17 | ||
ARG JUPYTERLAB_VERSION=3.6.5 | ||
ARG SCRIPTS_DIR=/opt/positscripts | ||
|
||
ENV WORKBENCH_JUPYTER_PATH=/usr/local/bin/jupyter | ||
|
||
SHELL ["/bin/bash", "-o", "pipefail", "-c"] | ||
RUN apt-get update \ | ||
&& apt-get install --no-install-recommends -y \ | ||
krb5-user \ | ||
libcurl4-gnutls-dev \ | ||
libuser \ | ||
libuser1-dev \ | ||
libpq-dev \ | ||
rrdtool \ | ||
subversion \ | ||
&& apt-get autoremove -y \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Add Jupyter, Python, and Quarto to the PATH | ||
ENV PATH="/opt/python/jupyter/bin:/opt/python/bin:/usr/lib/rstudio-server/bin/quarto/bin:${PATH}" | ||
|
||
RUN /opt/python/"${PYTHON_VERSION}"/bin/python -m venv /opt/python/jupyter \ | ||
&& /opt/python/jupyter/bin/python -m pip install --upgrade pip \ | ||
&& /opt/python/jupyter/bin/python -m pip install --upgrade setuptools \ | ||
&& /opt/python/jupyter/bin/python -m pip install \ | ||
jupyterlab~=4.2.4 \ | ||
notebook \ | ||
pwb_jupyterlab~=1.0 \ | ||
&& ln -s /opt/python/jupyter/bin/jupyter /usr/local/bin/jupyter \ | ||
&& /opt/python/${PYTHON_VERSION}/bin/python -m pip install ipykernel \ | ||
&& /opt/python/${PYTHON_VERSION_ALT}/bin/python -m pip install ipykernel \ | ||
&& /opt/python/${PYTHON_VERSION}/bin/python -m ipykernel install --name py${PYTHON_VERSION} --display-name "Python ${PYTHON_VERSION}" \ | ||
&& /opt/python/${PYTHON_VERSION_ALT}/bin/python -m ipykernel install --name py${PYTHON_VERSION_ALT} --display-name "Python ${PYTHON_VERSION_ALT}" \ | ||
&& /opt/python/jupyter/bin/python -m pip cache purge | ||
|
||
COPY vscode.extensions.conf /etc/rstudio/vscode.extensions.conf | ||
COPY positron.extensions.conf /etc/rstudio/positron.extensions.conf | ||
|
||
EXPOSE 8788/tcp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# 2024-11-15 | ||
|
||
- Add NEWS.md | ||
- Add daily builds |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# Quick reference | ||
|
||
* Maintained by: [the Posit Docker team](https://github.com/rstudio/rstudio-docker-products) | ||
* Where to get help: [our Github Issues page](https://github.com/rstudio/rstudio-docker-products/issues) | ||
* Posit Workbench image: [Docker Hub](https://hub.docker.com/r/rstudio/rstudio-workbench) | ||
* Posit Workbench session image: [Docker Hub](https://hub.docker.com/r/rstudio/workbench-session) | ||
* Posit Workbench session init image: [Docker Hub](https://hub.docker.com/r/rstudio/workbench-session-init) | ||
|
||
# Supported tags and respective Dockerfile links | ||
|
||
* [`ubuntu2204-r4.4.1_4.3.3-py3.12.6_3.11.10`, `ubuntu2204-r4.4.1_4.3.3-py3.11.10_3.10.15`, `ubuntu2204-r4.4.0_4.3.3-py3.12.1_3.11.7`](https://github.com/rstudio/rstudio-docker-products/blob/main/workbench-session/Dockerfile.ubuntu2204) | ||
|
||
# What are the r-session-complete images? | ||
|
||
Images for R and Python sessions and jobs to be used RStudio Workbench, Launcher, and Kubernetes. | ||
|
||
# Notice for support | ||
|
||
1. 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](./NEWS.md) to understand the changes before updating. | ||
1. 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. | ||
1. 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 how to build and use](#how-to-use-these-docker-images) | ||
for these cases. | ||
1. **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](https://github.com/rstudio/rstudio-docker-products#instructions-for-building) to clone this repository, and rebuild these images to your specific internal security standards. | ||
|
||
# How to use these images | ||
|
||
The Docker images built from these Dockerfiles are intended to be used for R and | ||
Jupyter sessions and jobs with Posit Workbench (PWB), Launcher, and | ||
Kubernetes. | ||
|
||
Note: These Docker images are not equipped or intended to be used to run Posit | ||
Workbench within a Docker container. Visit the | ||
[rstudio/rstudio-worbench Docker Hub page](https://hub.docker.com/r/rstudio/rstudio-workbench) | ||
for images built for that purpose. | ||
|
||
Note: These images do not include the Posit Workbench Session Components. To use these images with Posit Workbench, the [session init container](https://hub.docker.com/r/rstudio/workbench-session-init) must be enabled within the Posit Workbench configuration. For more information, refer to the [Posit Workbench documentation](https://docs.rstudio.com/ide/server-pro/launcher/). | ||
|
||
For more information about Posit Workbench and Launcher, refer to the | ||
[Launcher Overview](https://solutions.rstudio.com/launcher/overview/) on the | ||
RStudio Solutions website. | ||
|
||
For more information about how to use these images with RStudio Workbench and | ||
Launcher, refer to the RStudio support article on [Using Docker images with | ||
RStudio Workbench, Launcher, and Kubernetes](https://support.rstudio.com/hc/en-us/articles/360019253393-Using-Docker-images-with-RStudio-Server-Pro-Launcher-and-Kubernetes). | ||
|
||
We provide simple ways to extend and build the Dockerfiles. After you have cloned the repo, you can create your own containers fairly simply with the provided Justfile. | ||
|
||
## Overview | ||
|
||
Built images are available from the | ||
[rstudio/workbench-session](https://hub.docker.com/r/rstudio/workbench-session) | ||
repository on Docker Hub. | ||
|
||
These images include the following layers: | ||
|
||
* Base OS | ||
* System packages required for R, R packages, and RStudio Professional Drivers | ||
* Two versions of R | ||
* Two versions of Python | ||
* Jupyter Notebooks, JupyterLab, and RSW/RSC notebook extensions | ||
* RStudio Professional Drivers | ||
|
||
# Licensing | ||
|
||
The license associated with the RStudio Docker Products repository is located [in LICENSE.md](https://github.com/rstudio/rstudio-docker-products/blob/main/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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
version: '2.3' | ||
services: | ||
|
||
sut: | ||
image: $IMAGE_NAME | ||
command: /run_tests.sh | ||
entrypoint: [] | ||
environment: | ||
# uses .env by default | ||
- R_VERSION | ||
- PYTHON_VERSION | ||
volumes: | ||
- "./test/run_tests.sh:/run_tests.sh" | ||
- "./test/goss.yaml:/tmp/goss.yaml" | ||
- "./test/goss_vars.yaml:/tmp/goss_vars.yaml" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
posit.shiny | ||
posit.publisher |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
file: | ||
/usr/local/bin/jupyter: | ||
exists: true | ||
/opt/rstudio-drivers: | ||
exists: true | ||
filetype: directory | ||
/var/lib/rstudio-server/r-versions: | ||
exists: false | ||
/etc/rstudio/vscode.extensions.conf: | ||
exists: true | ||
/etc/rstudio/positron.extensions.conf: | ||
exists: true | ||
|
||
command: | ||
"echo '{ \"cells\": [], \"metadata\": {}, \"nbformat\": 4, \"nbformat_minor\": 2}' | /opt/python/jupyter/bin/jupyter nbconvert --to notebook --stdin --stdout": | ||
title: jupyter_works | ||
timeout: 60000 | ||
exit-status: 0 | ||
|
||
# Ensure correct R version | ||
"/opt/R/{{.Env.R_VERSION}}/bin/R --version": | ||
title: r_version_match | ||
exit-status: 0 | ||
stdout: [ | ||
"{{.Env.R_VERSION}}" | ||
] | ||
|
||
# Ensure correct python version | ||
"/opt/python/{{.Env.PYTHON_VERSION}}/bin/python3 --version": | ||
title: python_version_matches | ||
exit-status: 0 | ||
stdout: [ | ||
"{{ .Env.PYTHON_VERSION }}" | ||
] | ||
|
||
"python3 --version": | ||
title: python_in_path_var | ||
exit-status: 0 | ||
stdout: [ | ||
"{{ .Env.PYTHON_VERSION }}" | ||
] | ||
|
||
"jupyter --version": | ||
title: jupyter_in_path_var | ||
timeout: 60000 | ||
exit-status: 0 | ||
|
||
"pip --version": | ||
title: pip_installed | ||
exit-status: 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#!/bin/bash | ||
|
||
GOSS_FILE=${GOSS_FILE:-/test/goss.yaml} | ||
GOSS_VERSION=${GOSS_VERSION:-0.4.6} | ||
GOSS_MAX_CONCURRENT=${GOSS_MAX_CONCURRENT:-50} | ||
|
||
if [ -f /etc/debian_version ]; then | ||
OS="ubuntu" | ||
else | ||
echo "OS not supported. Exiting" | ||
exit 1 | ||
fi | ||
|
||
# install goss to tmp location and make executable | ||
curl -fsSL https://github.com/aelsabbahy/goss/releases/download/v$GOSS_VERSION/goss-linux-amd64 -o /tmp/goss \ | ||
&& chmod +x /tmp/goss \ | ||
&& GOSS=/tmp/goss | ||
|
||
OS=$OS GOSS_FILE=$GOSS_FILE $GOSS v --format documentation --max-concurrent $GOSS_MAX_CONCURRENT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
quarto.quarto | ||
REditorSupport.r@2.8.2 | ||
ms-python.python | ||
posit.shiny | ||
ms-toolsai.jupyter |