Create and customize Domino Compute Environments - Docker containers defining tools, packages, and configurations. Covers Dockerfile customization, package installation, IDE configuration, DSE (Domino Standard Environments), and troubleshooting build failures. Use when installing dependencies, customizing environments, or fixing environment issues.
80
—
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
This skill helps users create, customize, and manage Domino Compute Environments - Docker-based containers that define the tools, packages, and configurations for workspaces, jobs, and other executions.
Activate this skill when users want to:
A Domino Compute Environment is a Docker container image that contains:
Domino provides pre-built environments with common tools:
| Environment | Includes |
|---|---|
| Domino Standard Environment | Python 3.9, R 4.1, Jupyter, VS Code |
| Domino Spark Environment | Spark 3.x, PySpark |
| Domino Ray Environment | Ray for distributed computing |
| Domino GPU Environment | CUDA, cuDNN, GPU libraries |
Add instructions to customize the environment. Do NOT include FROM statement.
# Install system packages
RUN apt-get update && apt-get install -y \
libpq-dev \
graphviz \
&& rm -rf /var/lib/apt/lists/*
# Install Python packages
RUN pip install --no-cache-dir \
pandas==2.0.0 \
scikit-learn==1.3.0 \
tensorflow==2.13.0
# Install R packages
RUN R -e "install.packages(c('tidyverse', 'caret'), repos='https://cloud.r-project.org')"
# Set environment variables
ENV MODEL_PATH=/mnt/artifacts/model.pklBest for packages that should always be available.
RUN pip install pandas numpy scikit-learnPros: Fast startup, consistent environment Cons: Requires environment rebuild for changes
Packages installed at execution startup.
# requirements.txt in project root
pandas>=2.0.0
numpy>=1.24.0
scikit-learn>=1.3.0Pros: No rebuild needed, per-project customization Cons: Slower startup
Custom scripts that run at execution start.
#!/bin/bash
# pre-run.sh
pip install -q custom-packageInstall during execution (temporary).
!pip install package-name# Good: Single layer
RUN pip install pandas numpy scikit-learn matplotlib
# Bad: Multiple layers
RUN pip install pandas
RUN pip install numpy
RUN pip install scikit-learnRUN apt-get update && apt-get install -y \
package1 \
package2 \
&& rm -rf /var/lib/apt/lists/*# Good: Reproducible
RUN pip install pandas==2.0.0 scikit-learn==1.3.0
# Bad: May break
RUN pip install pandas scikit-learnRUN pip install --no-cache-dir package-nameENV MY_VAR=value
ENV DATA_PATH=/mnt/dataimport os
value = os.environ.get('MY_VAR', 'default')# Ensure base image has CUDA
# Add GPU-specific packages
RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118RUN pip install tensorflow[and-cuda]import torch
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"GPU count: {torch.cuda.device_count()}")RUN mkdir -p /home/domino/.jupyter && \
echo "c.NotebookApp.token = ''" >> /home/domino/.jupyter/jupyter_notebook_config.pyPre-install extensions:
RUN code-server --install-extension ms-python.pythonDomino tracks environment versions:
Go to Environment > Revisions tab
Select revision when launching workspace or job.
Package not found:
# Wrong
RUN pip install sklearn
# Right
RUN pip install scikit-learnPermission denied:
# Run as root if needed
USER root
RUN apt-get update && apt-get install -y package
USER dominoTimeout during build:
# Build and test locally before adding to Domino
docker build -t test-env -f Dockerfile .
docker run -it test-env python -c "import pandas; print(pandas.__version__)"47c6e0a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.