Nix-based framework for declarative, reproducible JupyterLab environments with configurable kernels and extensions.
jupyterhub/repo2docker
Builds a git repository into a Jupyter-enabled Docker image based on the configuration files found in that repo.
- Stars
- 1,740
- Forks
- 389
- Open issues
- 199
- Last commit
- 23 hours ago
What is it?
repo2docker fetches a git repository, from GitHub or a local path, and builds a container image from the configuration files it contains. The image is set up so the repository's contents can be explored in a Jupyter environment, which makes it easy to share a project with its dependencies already installed.
Running it is a single command, such as jupyter-repo2docker with a repository URL. Docker must be running on the machine. Once the build finishes, the tool prints a URL with a login token that opens Jupyter Notebook with the repository's files.
The design is inspired by Heroku Build Packs: the repository itself declares how the environment should be built. It is the engine behind Binder-style services, and BinderHub can run it inside a container when given access to the Docker daemon. Supported on Linux and macOS, and installable from PyPI as jupyter-repo2docker.
Key features
- 01Fetches a git repository from GitHub or a local path and builds it into a Docker image.
- 02Reads configuration files in the repository to decide the environment setup.
- 03Launches a Jupyter Notebook server with the repository contents once the build completes.
- 04Can be installed from PyPI or from source with pip.
- 05Can run inside a container when Docker daemon access is provided, as used by BinderHub.
Use cases
- Packaging a research or teaching repository so others can run it with all dependencies preinstalled.
- Running a shared code repository in a reproducible Jupyter environment without manual setup.
- Providing Binder-style launch links for a project through BinderHub.
Quick start
- 1
Install Docker (required and must be running)
- 2
Install repo2docker from PyPI
pip install jupyter-repo2docker - 3
Build and launch a repository
jupyter-repo2docker https://github.com/norvig/pytudes
Things to know
- Supported on Linux and macOS; Windows support is not official.
- Requires Docker to be running on your machine.
Topics
FAQ
- What is repo2docker?
- Builds a git repository into a Jupyter-enabled Docker image based on the configuration files found in that repo. repo2docker fetches a git repository, from GitHub or a local path, and builds a container image from the configuration files it contains. The image is set up so the repository's contents can be explored in a Jupyter environment, which makes it easy to share a project with its dependencies already installed.
- Is repo2docker free to use? What license does it have?
- repo2docker is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
- Is repo2docker still maintained?
- Actively maintained. The last commit to repo2docker was on Nov 6, 2026.
- What can I use repo2docker for?
- Packaging a research or teaching repository so others can run it with all dependencies preinstalled. Running a shared code repository in a reproducible Jupyter environment without manual setup. Providing Binder-style launch links for a project through BinderHub.
- How do I install repo2docker?
- Install Docker (required and must be running) Install repo2docker from PyPI: pip install jupyter-repo2docker Build and launch a repository: jupyter-repo2docker https://github.com/norvig/pytudes
- Where can I get repo2docker?
- The source code and installation instructions are on GitHub: https://github.com/jupyterhub/repo2docker
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A system for creating, distributing, autograding and manually grading Jupyter notebook assignments.
A Jupyter server extension that runs external web apps like RStudio or Code Server alongside a notebook server and serves them through authenticated paths.
Stores Jupyter notebooks as plain Markdown or Python, Julia, R scripts so they diff and version cleanly in Git.
A Python tool that parameterizes, executes, and analyzes Jupyter notebooks from the command line or a Python API.
A CLI tool that builds reproducible, container-based development environments for AI/ML from a Python build.envd file.