Adding new workspaces with pluggable notebooks

Overview

Many of our users have asked for custom tools beyond the current base Domino offering of Jupyter, RStudio, PySpark, and Zeppelin notebooks.  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:


NOTE: For Jupyter, Jupyterlab, and RStudio, paste the below into the Dockerfile instructions to access supported start scripts.

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
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
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: "https://raw.github.com/dominodatalab/workspace-configs/develop/workspace-logos/Jupyter.svg?sanitize=true"
start: [ "/var/opt/workspaces/jupyter/start" ]
httpProxy:
port: 8888
rewrite: false
internalPath: "/{{#if pathToOpen}}tree/{{pathToOpen}}{{/if}}"
supportedFileExtensions: [ ".ipynb" ]
rstudio:
title: "RStudio"
iconUrl: "https://raw.github.com/dominodatalab/workspace-configs/develop/workspace-logos//Rstudio.svg?sanitize=true"
start: [ "/var/opt/workspaces/rstudio/start" ]
httpProxy:
port: 8888
jupyterlab:
title: "JupyterLab (Beta)"
iconUrl: "https://raw.githubusercontent.com/dominodatalab/workspace-configs/develop/workspace-logos/jupyterlab.svg?sanitize=true"
start: [ /var/opt/workspaces/Jupyterlab/start.sh ]
httpProxy:
internalPath: /{{ownerUsername}}/{{projectName}}/{{sessionPathComponent}}/{{runId}}
port: 8888
rewrite: false

If your deployment has special networking needs, the definitions and/or dockerfile instructions above may need some modification. For more information about configuring environment, see the Compute Environment Management documentation.

 

Was this article helpful?
0 out of 0 found this helpful