← Domino Data LabCONTENT HISTORY
WHAT CHANGED
Update to Domino Data Lab
Snapshot Oct 24, 2026 · 13:54 UTC · version 2026.603.4
Collection source: skill API.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Domino Data Lab and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "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.",
"included_files": [],
"name": "domino-environments",
"skill_md_contents": "---\nname: domino-environments\ndescription: 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.\n---\n\n# Domino Compute Environments Skill\n\n## Description\nThis 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.\n\n## Activation\nActivate this skill when users want to:\n- Create or customize a compute environment\n- Install packages or dependencies\n- Configure Dockerfile instructions\n- Understand environment best practices\n- Troubleshoot environment build issues\n\n## What is a Compute Environment?\n\nA Domino Compute Environment is a Docker container image that contains:\n- Operating system and base tools\n- Programming languages (Python, R)\n- IDEs (Jupyter, VS Code, RStudio)\n- Libraries and packages\n- Custom configurations\n\n## Domino Standard Environments (DSEs)\n\nDomino provides pre-built environments with common tools:\n\n| Environment | Includes |\n|-------------|----------|\n| Domino Standard Environment | Python 3.9, R 4.1, Jupyter, VS Code |\n| Domino Spark Environment | Spark 3.x, PySpark |\n| Domino Ray Environment | Ray for distributed computing |\n| Domino GPU Environment | CUDA, cuDNN, GPU libraries |\n\n## Creating a Custom Environment\n\n### Via Domino UI\n1. Go to **Environments** in Domino\n2. Click **Create Environment**\n3. Configure:\n - **Name**: Descriptive name\n - **Base Image**: Start from DSE or custom image\n - **Dockerfile Instructions**: Add customizations\n4. Click **Build**\n\n### Dockerfile Instructions\n\nAdd instructions to customize the environment. Do NOT include `FROM` statement.\n\n```dockerfile\n# Install system packages\nRUN apt-get update && apt-get install -y \\\n libpq-dev \\\n graphviz \\\n && rm -rf /var/lib/apt/lists/*\n\n# Install Python packages\nRUN pip install --no-cache-dir \\\n pandas==2.0.0 \\\n scikit-learn==1.3.0 \\\n tensorflow==2.13.0\n\n# Install R packages\nRUN R -e \"install.packages(c('tidyverse', 'caret'), repos='https://cloud.r-project.org')\"\n\n# Set environment variables\nENV MODEL_PATH=/mnt/artifacts/model.pkl\n```\n\n## Package Installation Methods\n\n### Method 1: Dockerfile Instructions (Recommended)\nBest for packages that should always be available.\n\n```dockerfile\nRUN pip install pandas numpy scikit-learn\n```\n\n**Pros**: Fast startup, consistent environment\n**Cons**: Requires environment rebuild for changes\n\n### Method 2: requirements.txt\nPackages installed at execution startup.\n\n```text\n# requirements.txt in project root\npandas>=2.0.0\nnumpy>=1.24.0\nscikit-learn>=1.3.0\n```\n\n**Pros**: No rebuild needed, per-project customization\n**Cons**: Slower startup\n\n### Method 3: Pre/Post-run Scripts\nCustom scripts that run at execution start.\n\n```bash\n#!/bin/bash\n# pre-run.sh\npip install -q custom-package\n```\n\n### Method 4: Runtime Installation\nInstall during execution (temporary).\n\n```python\n!pip install package-name\n```\n\n## Dockerfile Best Practices\n\n### Combine RUN Commands\n```dockerfile\n# Good: Single layer\nRUN pip install pandas numpy scikit-learn matplotlib\n\n# Bad: Multiple layers\nRUN pip install pandas\nRUN pip install numpy\nRUN pip install scikit-learn\n```\n\n### Clean Up\n```dockerfile\nRUN apt-get update && apt-get install -y \\\n package1 \\\n package2 \\\n && rm -rf /var/lib/apt/lists/*\n```\n\n### Pin Versions\n```dockerfile\n# Good: Reproducible\nRUN pip install pandas==2.0.0 scikit-learn==1.3.0\n\n# Bad: May break\nRUN pip install pandas scikit-learn\n```\n\n### Use --no-cache-dir\n```dockerfile\nRUN pip install --no-cache-dir package-name\n```\n\n## Environment Variables\n\n### Set in Dockerfile\n```dockerfile\nENV MY_VAR=value\nENV DATA_PATH=/mnt/data\n```\n\n### Set in Domino UI\n1. Go to Environment settings\n2. Add environment variables\n3. Variables available in all executions\n\n### Access in Code\n```python\nimport os\nvalue = os.environ.get('MY_VAR', 'default')\n```\n\n## GPU Environments\n\n### CUDA Setup\n```dockerfile\n# Ensure base image has CUDA\n# Add GPU-specific packages\nRUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118\n```\n\n### TensorFlow GPU\n```dockerfile\nRUN pip install tensorflow[and-cuda]\n```\n\n### Verify GPU Access\n```python\nimport torch\nprint(f\"CUDA available: {torch.cuda.is_available()}\")\nprint(f\"GPU count: {torch.cuda.device_count()}\")\n```\n\n## IDE Configuration\n\n### Custom Jupyter Config\n```dockerfile\nRUN mkdir -p /home/domino/.jupyter && \\\n echo \"c.NotebookApp.token = ''\" >> /home/domino/.jupyter/jupyter_notebook_config.py\n```\n\n### VS Code Extensions\nPre-install extensions:\n```dockerfile\nRUN code-server --install-extension ms-python.python\n```\n\n## Environment Revisions\n\nDomino tracks environment versions:\n- Each build creates a new revision\n- Can roll back to previous revisions\n- Executions can specify which revision to use\n\n### View Revisions\nGo to Environment > **Revisions** tab\n\n### Use Specific Revision\nSelect revision when launching workspace or job.\n\n## Troubleshooting Builds\n\n### Build Fails\n1. Check Dockerfile syntax\n2. Verify base image exists\n3. Check network access for package downloads\n4. Review build logs for specific errors\n\n### Common Errors\n\n**Package not found**:\n```dockerfile\n# Wrong\nRUN pip install sklearn\n\n# Right\nRUN pip install scikit-learn\n```\n\n**Permission denied**:\n```dockerfile\n# Run as root if needed\nUSER root\nRUN apt-get update && apt-get install -y package\nUSER domino\n```\n\n**Timeout during build**:\n- Reduce number of packages\n- Use pre-built wheels\n- Check network connectivity\n\n### Test Locally\n```bash\n# Build and test locally before adding to Domino\ndocker build -t test-env -f Dockerfile .\ndocker run -it test-env python -c \"import pandas; print(pandas.__version__)\"\n```\n\n## Best Practices Summary\n\n1. **Start from DSE**: Use Domino Standard Environment as base\n2. **Minimize layers**: Combine RUN commands\n3. **Pin versions**: Ensure reproducibility\n4. **Document changes**: Comment Dockerfile instructions\n5. **Test before building**: Verify packages work together\n6. **Clean up**: Remove cache and temporary files\n7. **Regular updates**: Keep packages current for security\n\n## Documentation Reference\n- [Customize your Environment](https://docs.dominodatalab.com/en/latest/user_guide/5dd2c1/customize-your-environment/)\n- [Add packages to Environments](https://docs.dominodatalab.com/en/latest/user_guide/bfa148/add-packages-to-environments/)\n- [Domino Standard Environments](https://docs.dominodatalab.com/en/latest/user_guide/0d73c6/domino-standard-environments/)\n- [Best Practices for Environments](https://docs.dominodatalab.com/en/cloud/user_guide/0e4da9/best-practices-for-domino-environments/)\n"
}SHA-256 of public snapshot: 97705b5d64647cba8513cdf7dab3a2a0921646138f4745409f93462e3c8d7e90