Custom notebook images for the JupyterHub teaching infrastructure at HAW Kiel (Hochschule für Angewandte Wissenschaften Kiel). Built for use with JupyterHub on a Kubernetes (RKE2) cluster and designed for courses in Data Science, Cloud Computing, and Generative AI.
| Image | Base | Description |
|---|---|---|
notebook-base | ubuntu:24.04 | Shared base with all common packages |
notebook-cpu | notebook-base | CPU-only PyTorch for standard workloads |
notebook-gpu | notebook-base | CUDA-enabled PyTorch + GPU monitoring |
All images expose three Jupyter kernels:
All images include the following Python packages (installed via uv into a virtual environment at ~/.venv):
jupyterlab, jupyterhub, notebook, ipykernel, ipympl, ipywidgets, altair, beautifulsoup4, bokeh, bottleneck, cloudpickle, dask, dill, h5py, jupyterlab-git, matplotlib, numba, numexpr, numpy, openpyxl, pandas, patsy, plotly, scikit-image, scikit-learn, scipy, seaborn, sentence-transformers, sqlalchemy, statsmodels, sympy, transformers, xlrd, jupyter-resource-usage, marimo, uv
The notebook-cpu image adds CPU-only PyTorch. The notebook-gpu image adds CUDA-enabled PyTorch and jupyterlab-nvdashboard for GPU monitoring.
R packages are installed via r2u as pre-compiled Ubuntu binaries (significantly faster than install.packages()):
r-base, caret, crayon, devtools, e1071, forecast, hexbin, htmltools, htmlwidgets, IRkernel, nycflights13, randomForest, RCurl, rmarkdown, RODBC, RSQLite, shiny, tidymodels, tidyverse
The startup scripts (start.sh, run-hooks.sh, fix-permissions), server configuration (jupyter_server_config.py), and container conventions (jovyan user, NB_UID/NB_GID remapping, before-notebook.d hooks) are adapted from the Jupyter Docker Stacks project.
Copyright (c) Jupyter Development Team. Distributed under the terms of the Modified BSD License.
The following files are copied verbatim from jupyter/docker-stacks:
fix-permissions (from docker-stacks-foundation)run-hooks.sh (from docker-stacks-foundation)start.sh (from docker-stacks-foundation)start-singleuser.py (from base-notebook)docker_healthcheck.py (from base-notebook)The following files are adapted:
start-notebook.py — prepends the uv venv to PATH before delegating to start.shjupyter_server_config.py — CONDA_DIR reference replaced with VENV for SSL certificate path resolution~/.venv, not the conda base environmentubuntu:24.04 — no conda base layerContent type
Image
Digest
sha256:a7bd1d61d…
Size
5.7 GB
Last updated
6 months ago
docker pull mbrede/notebook-gpu