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
Your administrator must be aware that 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 invalid and are not usable.

Configure an IDE

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

Note
Typically, an administrator or advanced user does this work. Domino recommends that you contact your administrator for help defining the tool you want to use.
  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" ]
  supportedFileExtensions: [ ".ipynb" ]
  httpProxy:
    port: 8888
    rewrite: false
    internalPath: "/{{ownerUsername}}/{{projectName}}/{{sessionPathComponent}}/{{runId}}/{{#if pathToOpen}}tree/{{pathToOpen}}{{/if}}"
    requireSubdomain: false
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