domino logo
Latest (5.8)
  • Overview
  • Domino Cloud
  • Domino Nexus
  • Code Assist
  • Get started
  • Work with data
  • Develop models
  • Scale out distributed computing
  • Register and govern models
  • Deploy models
  • Monitor models
  • Publish Apps
  • Projects
  • Collaborate
  • Workspaces
  • Jobs
  • Environments
  • Executions
  • Launchers
  • Environment variables
  • Secure credential store
  • Organizations
  • Domino API
  • Domino CLI
  • Troubleshooting
  • Get help
  • Additional resources
  • Send feedback
domino logo
About Domino
Domino Data LabKnowledge BaseData Science BlogTraining
>
User guide
>
Environments
>
Customize Environments
>
Pluggable Workspaces
>
Add Workspace IDEs

Add Workspace IDEs

Domino is interoperable with your favorite languages, development tools and software. Learn how to bring your favorite IDEs to Domino.

When you add a Workspace IDE to your Compute Environment, you can:

  • 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.

Note

Configure an IDE

You must set up the Environment’s Docker image installation instructions and define how Domino will serve the tool.

Note
  1. In your Environment, enter the instructions to install and configure a tool in the Dockerfile instructions:

For 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/*

For 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/*
  1. 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.

    For 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

Install other Workspace IDEs into your Environment

  1. Install the tool into your Environment. Start a workspace and use a terminal in the workspace to install the tool. While you do this, verify that your installation commands work before adding them to your Dockerfile.

  2. Define a start script for your new IDE. Starting in 4.6, start scripts live in /opt/domino/workspaces by default. You can put your start script wherever you want, so it can be helpful to work on it in your DOMINO_WORKING_DIR before making it a part of your Environment’s Docker commands.

    1. If your IDE requires a custom start command that uses multiple arguments, add them as an Array. For example: [ "sh", "/mnt/app.sh" ]

  3. Add a new field to your Environment’s Pluggable Workspace Tools. Be sure the Start field matches the location of your start script.

See Open a VS Code Workspace for an example how to add Visual Studio code as a custom workspace tool.

Domino Data Lab
Knowledge Base
Data Science Blog
Training
Copyright © 2023 Domino Data Lab. All rights reserved.