This is an advanced topic to assist with customizing images for use in Domino without using the automatic compatibility feature.
When you create an Environment with the automatic compatibility feature selected, Domino adds several Dockerfile commands so that the custom images can launch Job and Workspace containers.
At a high level, these instructions perform the following actions:
-
Create a non-root Domino user.
-
Install
sudo and curl.
For these images to work in Domino, you must have Sudo and curl installations. curl transfers data. Use sudo to install additional packages and libraries in the container, depending on the permissions set up by your Domino administrator.
-
Add an isolated directory,
/opt/domino/, with the tools required to run Domino Workspaces.
If you have enabled non-root executions, refer to Create the image compatible with non-root executions.
Create the image
-
Use the following Dockerfile instructions to replicate these steps when building a custom image.
-
If you want JupyterLab or any IDE in this workspace, define a start script for each. See Replace Default Environment Tools for an example. These start scripts are stored in
/opt/domino/workspaces by default.
-
Add a new field to your Environment’s Pluggable Workspace Tools for the associated tool and set the start field to the location of your start script.
Create the image compatible with non-root executions
Images shouldn’t add users to sudoers, according to the non-root executions principle. It is recommended to build environment images with the packages you need, rather than relying on a root user for runtime package installation, for increased reproducibility and security in your environment.
-
Use the following Dockerfile instructions to replicate these steps when building a custom image.
-
If you want JupyterLab or any IDE in this workspace, define a start script for each. See Replace Default Environment Tools for an example. These start scripts are stored in
/opt/domino/workspaces by default.
-
Add a new field to your environment’s Pluggable Workspace Tools for the associated tool and set the start field to the location of your start script.
Optional: Enable JupyterLab
If you want to use JupyterLab in a Domino workspace that uses a custom image, use the following instructions to install with miniconda. The commands to install Tensorboard are included, and the comments indicate which lines to remove if you do not need Tensorboard in your image.
Optional: Enable VS Code
To use VS Code in a Domino workspace, add the following instructions.