Multi-arch (linux/amd64
, linux/arm64/v8
) docker images:
Images considered stable for Mojo versions ≥ 24.3.0.
:microscope: Check out jupyterlab/mojo/scipy
at
https://demo.jupyter.b-data.ch.
Build chain
base → scipy
Features
Code - OSS
in the
browser.:point_right: See the Version Matrix for detailed information.
The following extensions are pre-installed for code-server:
Subtags
{MOJO_VERSION,latest}-root
: Container runs as root
{MOJO_VERSION,latest}-devtools
: Includes the
requirements according to
{MOJO_VERSION,latest}-devtools-root
: The combination of both{MOJO_VERSION,latest}-docker
: Includes
docker-ce-cli
docker-buildx-plugin
docker-compose-plugin
docker-scan-plugin
(amd64 only){MOJO_VERSION,latest}-docker-root
: The combination of both{MOJO_VERSION,latest}-devtools-docker
: The combination of both{MOJO_VERSION,latest}-devtools-docker-root
: The combination of all three:information_source: See also Notes on subtag devtools
.
This projects requires an installation of docker.
To install docker, follow the instructions for your platform:
latest:
cd base && docker build \
--build-arg MODULAR_VERSION=0.8.0 \
--build-arg MODULAR_AUTH_KEY=<your-modular-auth-key> \
--build-arg MOJO_VERSION=24.4.0 \
--build-arg PYTHON_VERSION=3.12.4 \
-t jupyterlab/mojo/base \
-f latest.Dockerfile .
version:
cd base && docker build \
--build-arg MODULAR_AUTH_KEY=<your-modular-auth-key> \
-t jupyterlab/mojo/base:MAJOR.MINOR.PATCH \
-f MAJOR.MINOR.PATCH.Dockerfile .
For MAJOR.MINOR.PATCH
≥ 24.3.0
.
Create an empty directory using docker:
docker run --rm \
-v "${PWD}/jupyterlab-jovyan":/dummy \
alpine chown 1000:100 /dummy
It will be bind mounted as the JupyterLab user's home directory and automatically populated.
self built:
docker run -it --rm \
-p 8888:8888 \
-u root \
-v "${PWD}/jupyterlab-jovyan":/home/jovyan \
-e NB_UID=$(id -u) \
-e NB_GID=$(id -g) \
jupyterlab/mojo/base[:MAJOR.MINOR.PATCH]
from the project's GitLab Container Registries:
docker run -it --rm \
-p 8888:8888 \
-u root \
-v "${PWD}/jupyterlab-jovyan":/home/jovyan \
-e NB_UID=$(id -u) \
-e NB_GID=$(id -g) \
IMAGE[:MAJOR[.MINOR[.PATCH]]]
IMAGE
being one of
The use of the -v
flag in the command mounts the empty directory on the host
(${PWD}/jupyterlab-jovyan
in the command) as /home/jovyan
in the container.
-e NB_UID=$(id -u) -e NB_GID=$(id -g)
instructs the startup script to switch
the user ID and the primary group ID of ${NB_USER}
to the user and group ID of
the one executing the command.
The server logs appear in the terminal.
Create an empty home directory:
mkdir "${PWD}/jupyterlab-root"
Use the following command to run the container as root
:
podman run -it --rm \
-p 8888:8888 \
-u root \
-v "${PWD}/jupyterlab-root":/home/root \
-e NB_USER=root \
-e NB_UID=0 \
-e NB_GID=0 \
-e NOTEBOOK_ARGS="--allow-root" \
IMAGE[:MAJOR[.MINOR[.PATCH]]]
Creating a home directory might not be required. Also
docker run -it --rm \
-p 8888:8888 \
-v "${PWD}/jupyterlab-jovyan":/home/jovyan \
IMAGE[:MAJOR[.MINOR[.PATCH]]]
might be sufficient.
To add a JupyterLab Launcher icon for marimo:
Terminal: Install marimo and click
pip install marimo click
Terminal: Install jupyter-marimo-proxy
pip install git+https://github.com/b-data/jupyter-marimo-proxy.git@jupyterlab-docker-stack
Restart the container
What makes this project different:
linux/amd64
, linux/arm64/v8
Code - OSS
in the browser.See Notes for tweaks, settings, etc.
PRs accepted. Please submit to the GitLab repository.
This project follows the Contributor Covenant Code of Conduct.
Community support: Open a new disussion here. Commercial support: Contact b-data by email.
b-data tailors the JupyterLab images to your needs, e.g.
Additionally, the JupyterHub setup can be customised to allow
and much more.
Copyright © 2024 b-data GmbH
Distributed under the terms of the MIT License, with exceptions.