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/populate.sh
to populate a bind mounted home directory
/home/jovyan. - /usr/local/bin/before-notebook.d/init.sh to
- update timezone according to environment variable
TZ. - add locales according to environment variable
LANGS. - set locale according to environment variable
LANG. - update code-server settings.
- update timezone according to environment variable
/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.
CS_DISABLE_GETTING_STARTED_OVERRIDE=1: code-server: Hide the coder/coder promotion in Help: Getting Started
Versions
PYTHON_VERSIONJUPYTERHUB_VERSIONJUPYTERLAB_VERSIONCODE_SERVER_VERSIONGIT_VERSIONGIT_LFS_VERSIONPANDOC_VERSIONQUARTO_VERSION(scipy image)
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. (scipy image)
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.
- Terminal IPython:
- Only enable figure formats
svgandpdffor Terminal IPython.
- Only enable figure formats
- IPython kernel:
- Only enable figure formats
svgandpdffor IPython Kernel (Jupyter Notebooks).
- 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
- Text Editor > Tab Size: 2
- Extensions > Gitlens > Graph > Status Bar: Enabled: off
- Graph commands disabled where possible
- Application > Telemetry: Telemetry Level: off
- Features > Terminal > Integrated: Font Family: MesloLGS NF
- Workbench > Appearance > Color Theme: Default Dark+
- 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:
p10k configure- Does this look like a diamond (rotated square)?: (y) Yes.
- Does this look like a lock?: (y) Yes.
- Does this look like a Debian logo (swirl/spiral)?: (y) Yes.
- Do all these icons fit between the crosses?: (y) Yes.
- Prompt Style: (3) Rainbow.
- Character Set: (1) Unicode.
- Show current time?: (2) 24-hour format.
- Prompt Separators: (1) Angled.
- Prompt Heads: (1) Sharp.
- Prompt Tails: (1) Flat.
- Prompt Height: (2) Two lines.
- Prompt Connection: (2) Dotted.
- Prompt Frame: (2) Left.
- Connection & Frame Color: (2) Light.
- Prompt Spacing: (2) Sparse.
- Icons: (2) Many icons.
- Prompt Flow: (1) Concise.
- Enable Transient Prompt?: (n) No.
- Instant Prompt Mode: (3) Off.
- Oh My Zsh:
-
Terminal IPython: Create file
~/.ipython/profile_default/ipython_config.py- Valid figure formats:
png,retina,jpeg,svg,pdf.
- Valid figure formats:
-
IPython kernel: Create file
~/.ipython/profile_default/ipython_kernel_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 latest Python version is installed at /usr/local/bin, regardless of
whether all packages – such as numba, tensorflow, etc. – are already compatible
with it.
The CUDA and OS versions are selected as follows:
- CUDA: The lastest version that has image flavour
develincluding cuDNN available. - OS: The latest version that has TensortRT libraries for
amd64available.
ℹ️ It is taking quite a long time for these to be available forarm64.
Versions
CUDA_VERSION
Miscellaneous
CUDA_IMAGE: The CUDA image it is derived from.
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 OS' package repository.
The OS' Python version is installed at /usr/bin.
ℹ️ Because the recent Python version is installed
at /usr/local/bin, it takes precedence over the OS' Python version.