Skip to content

A Docker-based devcontainer for Jupyter Notebook's with a focus on Computer Vision, Machine Learning, Finance, Statistics and Visualization.

License

Notifications You must be signed in to change notification settings

jakoch/jupyter-devbox

jupyter-devbox GitHub Workflow Status Latest Version Image Size

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.

Purpose

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.

Images

Base distribution

This repository provides Docker images based on Debian 13 (Trixie, stable).

The images support multiple architectures: amd64 and arm64.

Container Registries

The images are automatically published to Github Container Registry (GHCR) and Docker Hub (hub.docker.com) upon updates.

What is pre-installed?

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.

Prerequisites

You need the following things to run this:

  • Docker
  • Visual Studio Code

How to run this?

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.

Building the Container Image locally using VSCode

  • 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 dockerFile to 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
  • 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 Trust to 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! 😎

Fetching the prebuilt container image

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:latest

You might also use this container image as a base image in your own Dockerfile:

FROM ghcr.io/jakoch/jupyter-devbox:latest

Supported CPU Architectures

About

A Docker-based devcontainer for Jupyter Notebook's with a focus on Computer Vision, Machine Learning, Finance, Statistics and Visualization.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors 2

  •  
  •