JupyterLab + code-server + Julia

I have grown very fond of the combo JupyterLab + code-server + <programming language>.

You may test it at https://demo.jupyter.b-data.ch/.
→ Resources are limited to 2 cores and 8 GB RAM.

I am happy to receive feedback.

3 Likes

For Julia, it runs registry.gitlab.b-data.ch/jupyterlab/julia/base.
→ A multi-arch (linux/amd64, linux/arm64/v8) docker image based on Debian including Julia, JupyterHub, JupyterLab, code-server (aka VS Code), Git, Git LFS, Pandoc, Zsh plus several popular VS Code extensions.

You may also run the image locally with Docker Desktop:

Initial command

docker run -it --rm -p 8888:8888 -v $PWD:/home/jovyan -e GEN_CERT=yes registry.gitlab.b-data.ch/jupyterlab/julia/base:1.7

Subsequent command

docker run -it --rm -p 8888:8888 -v $PWD:/home/jovyan registry.gitlab.b-data.ch/jupyterlab/julia/base:1.7 start-notebook.sh --NotebookApp.certfile=~/.local/share/jupyter/notebook.pem

→ The initial command must be run in an empty directory so that the container can populate it. Then, visit https://127.0.0.1:8888/lab?token=<token> in a browser to load JupyterLab.

I find Julia for Data Analysis > Setting up your environment rather complicated.

You should be able to work through Bogumił Kamiński’s book Julia for Data Analysis just fine with both the Jupyter demo environment and docker image.

P.S.: The linux/arm64/v8 image runs natively on Docker Desktop for Mac with Apple silicon.
P.P.S.: The RCall.jl package does not compile successfully, because R is not included in the image.

1 Like

Thank you for working on this!

1 Like

Thank you. This is great.

I was just about to create a topic for creating a datascience Docker image that includes Python, R, and Julia. Is that something that could be achieved with your image?

There ist the official jupyter/datascience-notebook image: Selecting an Image — Docker Stacks documentation

1 Like

I was just working with that for the last two days but it seems to cause problems with Intel/M1 combos. I googled whether a Docker image can be multiple-architecture (so for example, using the native Python and Julia for ARM but using x86 compiled R)

My images focus on one programming language per docker stack. With code-server as core application rather than JupyterLab.

There is registry.gitlab.b-data.ch/jupyterlab/r/verse and registry.gitlab.b-data.ch/jupyterlab/python/scipy.

My images are multi-arch (linux/amd64, linux/arm64/v8) and work fine on both Intel and M1 Macs.

Images in multi-arch manifests are in fact separate images. Docker just pulls one image depending on your architecture.