In the same way that you can use Domino to create compute environments to meet your specific language and package needs, use this functionality to define web-based tools inside 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.
-
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
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
USER root
###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/*
USER root
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 Pluggable Workspace Tools 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
Installing custom tools
You can also install workspace IDEs not mentioned here into your environment by:
-
Install the desired tool into your environment. It can be useful to start a workspace and install the tool using a terminal in that workspace to verify that your installation commands work correctly before adding them to your Dockerfile.
-
Define a start script for your new IDE. Starting in 4.6, start scripts live in
/opt/domino/workspaces
by default. You can make your start script live wherever you want, so it can be helpful to work on it in yourDOMINO_WORKING_DIR
before making it a part of your environment’s docker commands. -
Add a new field to your environment’s Pluggable Workspace Tools. Be sure the start field you include matches the location of your start script.
See Using Visual Studio Code In Domino Workspaces for an example of manually adding visual studio code as a custom workspace tool.