A Docker-based development container for Jupyter Notebooks with a focus on Computer Vision, Machine Learning, Finance, Statistics and Visualization.
It is designed especially for use with Visual Studio Code or any IDE that supports the devcontainer standard. The images can also be used in CI workflows.
jupyter-devbox provides a portable, standardized container with a ready-to-use Jupyter Notebook environment for interactive Python development in Visual Studio Code.
It ships with a curated set of scientific computing libraries, including OpenCV, TensorFlow, Keras, NumPy, Pandas, DuckDB, scikit-learn, SciPy, Matplotlib, Seaborn, imutils, and SQLAlchemy.
All Python packages are managed with uv for fast, reliable installs,
making it easy to add project-specific dependencies.
Additional developer tools include code formatters (Black, Ruff, isort),
LSP support, spell checking, and execution timing.
This repository provides Docker images based on Debian 13 (Trixie, stable).
The images support multiple architectures: amd64 and arm64.
The images are automatically published to Github Container Registry (GHCR) and Docker Hub (hub.docker.com) upon updates.
Base: Debian 13 - Trixie
On top of the Debian base image the following tools are installed:
- zsh, git, cmake, nano
- curl, wget
- imagemagick, gnuplot, graphviz
These programming languages are included:
- Python 3 (including pip, setuptools, wheel, venv, uv)
- C & C++ (g++, cmake, ninja)
The installed Python libraries are:
- ipykernel docutils jupyter notebook jupyterhub
- jupyterlab-code-formatter watermark pyyaml pylint ruff black isort
- jupyterlab-lsp python-lsp-server python-lsp-black python-lsp-ruff python-lsp-isort
- jupyterlab-spellchecker
- jupyterlab-execute-time
- tensorflow
- matplotlib seaborn plotly graphviz
- keras
- opencv-python-headless
- imutils
- numpy pandas pandas-datareader bottleneck h5py
- scipy scikit-learn
- duckdb
- sqlalchemy
- pyautogui
- requests_cache
- yfinance alpha_vantage nasdaq-data-link finnhub-python financetoolkit financedatabase
- statsmodels
You can find a list of all installed packages in the notebooks/check_devbox.ipynb Notebook.
You can run jupyter labextension list to list all enabled extensions.
You need the following things to run this:
- Docker
- Visual Studio Code
There are two ways of setting the container up.
Either by building the container image locally or by fetching the prebuilt container image from the Github container registry.
-
Step 1. Get the source: clone this repository using git or download the zip
-
Step 2. (optional) The repository contains multiple images.
You select an image by modifying the
dockerFileto use in./devcontainer/devcontainer.json:By default
"dockerFile": "amd64/Dockerfile"is set.For an image with architecture:
- amd64 set
amd64/Dockerfile - arm64, aarch64, arm64v8 set
arm64v8/Dockerfile
- amd64 set
-
Step 3. In VSCode open the folder in a container (
Remote Containers: Open Folder in Container):This will build the container image (
Starting Dev Container (show log): Building image..)Which takes a while...
Then, finally...
-
Step 4. Open the file
notebooks\test.ipynb -
Step 5. You might get a warning message for "untrusted" Notebook content.
Click
Trustto allow running the content of the Notebook. -
Step 6. You are now able to edit cells and run their content interactively in VSCode.
You might also run your scripts inside your browser at http://localhost:8888/
-
Enjoy! 😎
This container image is published to the Github Container Registry (GHCR).
You may find the package here: https://github.com/jakoch/jupyter-devbox/pkgs/container/jupyter-devbox.
You can install the container image from the command line:
docker pull ghcr.io/jakoch/jupyter-devbox:latestYou might also use this container image as a base image in your own Dockerfile:
FROM ghcr.io/jakoch/jupyter-devbox:latest-
x86_64 - linux/amd64
-
aarch64 - linux/aarch64, linux/arm64/v8, linux/arm64v8
-
not supported:
- armel
- armhf, linux/arm64/v7, linux/arm64v7
-
You can check your platform and available features with
dpkg --print-architecturecat /proc/cpuinfo