This docker stack uses modified startup scripts from
jupyter/docker-stacks.
ℹ️ Nevertheless, all Docker Options
and Permission-specific configurations
can be used for the images of this docker stack.
In comparison to jupyter/docker-stacks and/or rocker-org/rocker-versioned2, these images are tweaked as follows:
Shell script /usr/local/bin/start.sh is modified to
- allow bind mounting of a home directory.
- reset
CODE_WORKDIRfor customNB_USERs.
The following startup hooks are put in place:
- /usr/local/bin/start-notebook.d/10-populate.sh
to populate a bind mounted home directory
/home/jovyan. - /usr/local/bin/before-notebook.d/10-env.sh to
- update timezone according to environment variable
TZ. - add locales according to environment variable
LANGS. - set locale according to environment variable
LANG.
- update timezone according to environment variable
- /usr/local/bin/before-notebook.d/11-home.sh to create user's projects and workspaces folder.
- /usr/local/bin/before-notebook.d/12-r.sh to create user's R package library.
- /usr/local/bin/before-notebook.d/13-update-cran.sh to
- update CRAN mirror according to environment variable
CRAN. - use binary packages according to environment variable
R_BINARY_PACKAGES.
- update CRAN mirror according to environment variable
- /usr/local/bin/before-notebook.d/30-code-server.sh to update code-server settings.
- /usr/local/bin/before-notebook.d/50-rstudio.sh to
- set environment variables in
$(R RHOME)/etc/Renviron.site. - put inital RStudio settings in place.
- create user's working folder.
- set environment variables in
- /usr/local/bin/before-notebook.d/70-qgis.sh (qgisprocess images) to
- put inital QGIS settings in place.
- copy plugin 'Processing Saga NextGen Provider'.
- /usr/local/bin/before-notebook.d/71-tensorboard.sh to use Jupyter Server Proxy for TensorBoard.
- /usr/local/bin/before-notebook.d/90-limits.sh
- soft limit the address space based on the amount of physical memory
(
MEM_LIMIT) and virtual memory (SWAP_ENABLE,SWAP_FACTOR). (default: commandprlimit -v)- Do not limit if
NO_AS_LIMITorNO_MEM_LIMITis set to1oryes.
- Do not limit if
- limit the number of file descriptors according to environment variable
NOFILE_LIMIT. (default: commandprlimit -n) - limit the number of processes according to environment variable
NPROC_LIMIT. (default: commandprlimit -u) - limit the number of pending signals according to environment variable
SIGPEN_LIMIT. (default: commandprlimit -i)
- soft limit the address space based on the amount of physical memory
(
- /usr/local/bin/before-notebook.d/95-misc.sh
to export environment variables to
/tmp/environment.
/usr/local/bin/busy is executed during
screen/tmux sessions to update the last-activity timestamps on JupyterHub.
ℹ️ This prevents the JupyterHub Idle Culler Service from shutting down idle or long-running Jupyter Notebook servers, allowing for unattended computations.
CRAN: The CRAN mirror URL.R_BINARY_PACKAGES: R package type to use.- unset: Source packages. (default)
1/yes: Binary packages.
DOWNLOAD_STATIC_LIBV8=1: R (V8): Installing V8 on Linux, the alternative way.RETICULATE_MINICONDA_ENABLED=0: R (reticulate): Disable prompt to install miniconda.CS_DISABLE_GETTING_STARTED_OVERRIDE=1: code-server: Hide the coder/coder promotion in Help: Getting Started
Versions
R_VERSIONPYTHON_VERSIONJUPYTERHUB_VERSIONJUPYTERLAB_VERSIONCODE_SERVER_VERSIONRSTUDIO_VERSIONNEOVIM_VERSIONGIT_VERSIONGIT_LFS_VERSIONPANDOC_VERSIONQUARTO_VERSION(verse+ images)
Miscellaneous
BASE_IMAGE: Its very base, a Docker Official Image.PARENT_IMAGE: The image it was derived from.BUILD_DATE: The date it was built (ISO 8601 format).CTAN_REPO: The CTAN mirror URL. (verse+ images)
MRAN
Environment variable MRAN is deprecated:
After January 31, 2023, we [Microsoft] will no longer maintain the CRAN Time Machine snapshots.
Current situation regarding frozen images:
- R version < 4.2.2: MRAN retired; CRAN snapshots broken.
- 4.2.2 ≤ R version < 4.3.1: No CRAN snapshots available.
- Use renv to create reproducible environments for your R projects.
- R version ≥ 4.3.1: CRAN snapshots reinstated (P3M).
The default shell is Zsh, further enhanced with
- Framework: Oh My Zsh
- Theme: Powerlevel10k
- Font: MesloLGS NF
Pre-installed extensions are treated as built-in and therefore cannot be updated at user level.
In addition to the TeX packages used in
rocker/verse,
jupyter/scipy-notebook
and required for nbconvert, the
packages requested by the community
are installed.
- R:
$(R RHOME)/etc/Rprofile.site- IRkernel: Only enable
image/svg+xmlandapplication/pdffor plot display. - R Extension (code-server): Disable help panel and revert to old behaviour.
- IRkernel: Only enable
- IPython:
- Only enable figure formats
svgandpdffor IPython.
- Only enable figure formats
- JupyterLab:
- Theme > Selected Theme: JupyterLab Dark
- Terminal > Font family: MesloLGS NF
- Python LSP Server: Example settings according to jupyter-lsp/jupyterlab-lsp > Installation > Configuring the servers
- R LSP Server: Example settings according to jupyter-lsp/jupyterlab-lsp > Installation > Configuring the servers
- code-server
- Features > Chat > Disable AI Features: true
- Text Editor > Tab Size: 2
- Extensions > GitLab Workflow
- GitLab Duo Pro > Duo Code Suggestions: false
- GitLab Duo Pro > Duo Chat: false
- GitLab Duo Pro > Duo Agent Platform: false
- GitLab Duo Pro > Enabled Without Gitlab Project: false
- Extensions > GitLens — Git supercharged
- General > Show Welcome On Install: false
- General > Show Whats New After Upgrade: false
- Graph commands disabled where possible
- Extensions > Python
- Language Server: Jedi
- Extensions > R
- Bracketed Paste: true
- Plot: Use Httpgd: true
- Rterm: Linux:
/usr/local/bin/arf
ℹ️ If set to/usr/local/bin/radian, it will execute/usr/local/bin/arffor backwards compatibility. - Rterm: Option:
["--no-save", "--no-restore"] - Workspace Viewer: Show Object Size: true
- Extensions > Resource Monitor Configuration
- Show: Battery: false
- Show: Cpufreq: false
- Application > Telemetry: Telemetry Level: off
- Features > Terminal > Integrated: Font Family: MesloLGS NF
- Workbench > Appearance > Color Theme: Default Dark Modern
- QGIS (qgisprocess images):
- Append
/usr/lib/python3/dist-packagestoPYTHONPATH.
ℹ️ One distro refused to find the Python bindings to QGIS (at/usr/lib/python3/dist-packages/qgis)... Kept for backwards compatibility. - Set UI Theme to 'Night Mapping'.
- Set OTB application folder and OTB folder.
- Append
- Zsh
- Oh My Zsh:
~/.zshrc- Set PATH so it includes user's private bin if it exists
- Update last-activity timestamps while in screen/tmux session
- Powerlevel10k wizard options:
- nerdfont-v3 + powerline
- small icons
- rainbow
- unicode
- 24h time
- angled separators
- sharp heads
- flat tails
- 2 lines
- dotted
- left frame
- light-ornaments
- sparse
- many icons
- concise
- instant_prompt=off
- Oh My Zsh:
- Bash: /etc/profile.d/00-reset-path.sh
and /etc/skel/.profile
- Update
PATHfor login shells, e.g. when started as a server associated with JupyterHub.
- Update
- R: Create file
~/.Rprofile- Valid plot mimetypes:
image/png,image/jpeg,image/svg+xml,application/pdf.
ℹ️ MIME typetext/plainmust always be specified.
- Valid plot mimetypes:
- IPython: Create file
~/.ipython/profile_default/ipython_config.py- Valid figure formats:
png,retina,jpeg,svg,pdf.
- Valid figure formats:
- JupyterLab: Settings > Advanced Settings Editor
- code-server: Manage > Settings
- Zsh
- Oh My Zsh: Edit
~/.zshrc. - Powerlevel10k: Run
p10k configureor edit~/.p10k.zsh.- Update command:
git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull
- Update command:
- Oh My Zsh: Edit
The Python version is selected as follows:
- The latest Python version numba is compatible with.
This Python version is installed at /usr/local/bin.
The CUDA version is selected as follows:
- CUDA: The lastest version that has image flavour
develincluding cuDNN available.
- Provide NVBLAS-enabled
R_andRscript_.- Enabled at runtime and only if
nvidia-smiand at least one GPU are present.
- Enabled at runtime and only if
Versions
CUDA_VERSION
Miscellaneous
CUDA_IMAGE: The CUDA image it is derived from.
- code-server
- Extensions > R > Rterm: Linux:
/usr/local/bin/R
- Extensions > R > Rterm: Linux:
These images use OpenBLAS by default.
To have R and Rscript use NVBLAS instead,
- copy the NVBLAS-enabled executables to
~/.local/binfor file in $(which {R,Rscript}); do cp "$file"_ "$HOME/.local/bin/$(basename "$file")"; done
- set Extensions > R > Rterm > Linux:
/home/USER/.local/bin/Rin code-server settings
👉 SubstituteUSERwith your user name.
and restart the R terminal.
ℹ️ The xgboost package benefits greatly from NVBLAS, if it is installed correctly.
Node.js is installed with corepack enabled by default. Use it to manage Yarn and/or pnpm:
- Installation | Yarn - Package Manager > Updating the global Yarn version
- Installation | pnpm > Using Corepack
Package libsecret-1-dev depends on python3 from the system's package
repository.
The system's Python version is installed at /usr/bin.
ℹ️ Because a more recent Python version is
installed at /usr/local/bin, it takes precedence over the system's Python
version.