Skip to content

Latest commit

 

History

History
172 lines (139 loc) · 6.92 KB

NOTES.md

File metadata and controls

172 lines (139 loc) · 6.92 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 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
  • Bash: /etc/profile.d/00-reset-path.sh and /etc/skel/.profile
    • Update PATH for login shells, e.g. when started as a server associated with JupyterHub.

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.