Skip to content

Latest commit

 

History

History
210 lines (161 loc) · 8.17 KB

NOTES.md

File metadata and controls

210 lines (161 loc) · 8.17 KB

Notes

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.

Tweaks

In comparison to jupyter/docker-stacks and/or rocker-org/rocker-versioned2, these images are tweaked as follows:

Jupyter startup scripts

Shell script /usr/local/bin/start.sh is modified to

  • allow bind mounting of a home directory.
  • reset CODE_WORKDIR for custom NB_USERs.

Jupyter startup hooks

The following startup hooks are put in place:

Custom scripts

/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.

Environment variables

  • CS_DISABLE_GETTING_STARTED_OVERRIDE=1: code-server: Hide the coder/coder promotion in Help: Getting Started

Versions

  • PYTHON_VERSION
  • JUPYTERHUB_VERSION
  • JUPYTERLAB_VERSION
  • CODE_SERVER_VERSION
  • NEOVIM_VERSION
  • GIT_VERSION
  • GIT_LFS_VERSION
  • PANDOC_VERSION
  • QUARTO_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)

Shell

The default shell is Zsh, further enhanced with

Extensions (code-server)

Pre-installed extensions are treated as built-in and therefore cannot be updated at user level.

TeX packages (scipy image)

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.

Settings

Default

  • IPython:
    • Only enable figure formats svg and pdf for IPython.
  • JupyterLab:
  • code-server
    • Text Editor > Tab Size: 2
    • Extensions > GitLens — Git supercharged
      • General > Show Welcome On Install: false
      • General > Show Whats New After Upgrade: false
      • 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 an upwards arrow?: (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: (3) 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.

Customise

  • IPython: Create file ~/.ipython/profile_default/ipython_config.py

    • Valid figure formats: png, retina, jpeg, svg, pdf.
  • JupyterLab: Settings > Advanced Settings Editor

  • code-server: Manage > Settings

  • Zsh

    • Oh My Zsh: Edit ~/.zshrc.
    • Powerlevel10k: Run p10k configure or edit ~/.p10k.zsh.
      • Update command: git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull

Python

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.

Additional notes on CUDA

The CUDA and OS versions are selected as follows:

  • CUDA: The lastest version that has image flavour devel including cuDNN available.
  • OS: The latest version that has TensortRT libraries for amd64 available.
    ℹ️ It is taking quite a long time for these to be available for arm64.

Tweaks

Environment variables

Versions

  • CUDA_VERSION

Miscellaneous

  • CUDA_IMAGE: The CUDA image it is derived from.

Additional notes on subtag devtools

Node.js is installed with corepack enabled by default. Use it to manage Yarn and/or pnpm:

System Python

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.