Adding new workspaces with pluggable notebooks
Overview
In the same way that Domino allows you to create compute environments to meet your specific language and package needs, this functionality allows you to define web-based tools inside of your compute environment. This work is typically done by an administrator or advanced Domino user. We suggest you reach out to your admin for help with defining the tool you wish to use.
Benefits
- Upgrade to a newer version of currently supported Domino tools such as Jupyter or RStudio
- Add new web-based tools like JupyterLab
- Manage the standard default tool for your team or organization across all projects
Setting up tools in Environments
Configuring a tool in an environment involves two parts: giving the environment's docker image installation instructions, and defining how Domino will serve up that tool.
Dockerfile instructions
In your environment, enter the instructions to install and configure a tool in the Dockerfile instructions:
Python version >2.7.9
###Remove any old workspaces RUN \ apt-get remove rstudio-server -y && \ rm -rf /usr/local/lib/rstudio-server/rstudio-server && \ rm -rf /var/opt/workspaces ###Setup workspaces directory and retrieve workspace configs RUN mkdir /var/opt/workspaces RUN cd /tmp && wget https://github.com/dominodatalab/workspace-configs/archive/2018q2-v1.9.zip && unzip 2018q2-v1.9.zip && cp -Rf workspace-configs-2018q2-v1.9/. /var/opt/workspaces && \ rm -rf /var/opt/workspaces/workspace-logos && rm -rf /tmp/workspace-configs-2018q2-v1.9 #add update .Rprofile with Domino customizations RUN \ mv /var/opt/workspaces/rstudio/.Rprofile /home/ubuntu/.Rprofile && \ chown ubuntu:ubuntu /home/ubuntu/.Rprofile # # # #Install Rstudio from workspaces RUN chmod +x /var/opt/workspaces/rstudio/install RUN /var/opt/workspaces/rstudio/install # # # # # #Install Jupyterlab from workspaces RUN chmod +x /var/opt/workspaces/Jupyterlab/install RUN /var/opt/workspaces/Jupyterlab/install # # #Install Jupyter from workspaces RUN chmod +x /var/opt/workspaces/jupyter/install RUN /var/opt/workspaces/jupyter/install # Clean up temporary files RUN \ rm -Rf /var/lib/apt/lists/* && \ rm -Rf /tmp/*
Python version <2.7.9
###Remove any old workspaces RUN \ apt-get remove rstudio-server -y && \ rm -rf /usr/local/lib/rstudio-server/rstudio-server && \ rm -rf /var/opt/workspaces ###Setup workspaces directory and retrieve workspace configs RUN mkdir /var/opt/workspaces RUN cd /tmp && wget https://github.com/dominodatalab/workspace-configs/archive/2018q2-v1.9.zip && unzip 2018q2-v1.9.zip && cp -Rf workspace-configs-2018q2-v1.9/. /var/opt/workspaces && \ rm -rf /var/opt/workspaces/workspace-logos && rm -rf /tmp/workspace-configs-2018q2-v1.9 #add update .Rprofile with Domino customizations RUN \ mv /var/opt/workspaces/rstudio/.Rprofile /home/ubuntu/.Rprofile && \ chown ubuntu:ubuntu /home/ubuntu/.Rprofile # # # #Install Rstudio from workspaces RUN chmod +x /var/opt/workspaces/rstudio/install RUN /var/opt/workspaces/rstudio/install # # # # # #Install Jupyterlab from workspaces (pinned to avoid working directory bug in Jupyterlab) RUN pip install jupyterlab==0.31.12 # # #Install Jupyter from workspaces RUN chmod +x /var/opt/workspaces/jupyter/install RUN /var/opt/workspaces/jupyter/install # Clean up temporary files RUN \ rm -Rf /var/lib/apt/lists/* && \ rm -Rf /tmp/*
Properties
Notebook properties are stored as YAML data mapping notebook names to their definitions. Enter this in the Properties for Notebooks field in the Environment definition.
Example:
jupyter: title: "Jupyter (Python, R, Julia)" iconUrl: "/assets/images/workspace-logos/Jupyter.svg" start: [ "/var/opt/workspaces/jupyter/start" ] httpProxy: port: 8888 rewrite: false internalPath: "/{{ownerUsername}}/{{projectName}}/{{sessionPathComponent}}/{{runId}}/{{#if pathToOpen}}tree/{{pathToOpen}}{{/if}}" requireSubdomain: false supportedFileExtensions: [ ".ipynb" ] jupyterlab: title: "JupyterLab" iconUrl: "/assets/images/workspace-logos/jupyterlab.svg" start: [ /var/opt/workspaces/Jupyterlab/start.sh ] httpProxy: internalPath: "/{{ownerUsername}}/{{projectName}}/{{sessionPathComponent}}/{{runId}}/{{#if pathToOpen}}tree/{{pathToOpen}}{{/if}}" port: 8888 rewrite: false requireSubdomain: false vscode: title: "vscode" iconUrl: "/assets/images/workspace-logos/vscode.svg" start: [ "/var/opt/workspaces/vscode/start" ] httpProxy: port: 8888 requireSubdomain: false rstudio: title: "RStudio" iconUrl: "/assets/images/workspace-logos/Rstudio.svg" start: [ "/var/opt/workspaces/rstudio/start" ] httpProxy: port: 8888 requireSubdomain: false
Note to administrators
When the ShortLived.PluggableInteractiveSessionSubdomains feature flag is set to false, the httpProxy.requireSubdomain becomes required, and must be set to false. Any pluggable definitions without this flag explicitly set will be treated as invalid and will not be usable.
Comments
0 comments
Please sign in to leave a comment.