docker/jupyter
Mark 41ee2dc5b7
Improved jupyter container
2023-03-05 10:14:13 -08:00
..
build Module cleanup 2023-02-12 18:56:59 -08:00
.gitignore Whitespace and gitignore 2022-10-13 07:59:08 -07:00
README.md Improved jupyter container 2023-03-05 10:14:13 -08:00
docker-compose.yml Improved jupyter container 2023-03-05 10:14:13 -08:00

README.md

Jupyter Docker Image

This directory contains build files for a complete jupyter environment. It is based off the following repositories:

The images these files produce contain everything you could possibly want in a jupyter notebook. Additional packages can be installed in notebooks with %%bash magic.

Building the Image

To build this image, run build/build.fish. Edit the script to customize the image.

Configuration

Change the permissions on the configuration volume (see docker-compose.yml) if you get errors.

You may want to add the following lines to jupyter_notebook_config.py:

c.ServerApp.local_hostnames = ["localhost", "0.0.0.0"]
c.ServerApp.token = "a_long_random_string"

c.TagRemovePreprocessor.enabled = True
c.TagRemovePreprocessor.remove_cell_tags = ("hide_cell",)
c.TagRemovePreprocessor.remove_all_outputs_tags = ("hide_output",)
c.TagRemovePreprocessor.remove_input_tags = ("hide_input",)

The first sets 0.0.0.0 to the allowed local hostname list. This prevents a possible "connection reset" when connecting to the docker container. Opens jupyter up to the outside internet, but you should have your inbound ports firewalled off anyway.

The second line sets a persistent token. If this config value is unset, jupyter will generate a new one on each run, making it hard to make a one-click bookmark.

Image contents

  • jupyterlab, jupyterhub, notebook
    • latex + pandoc for exporting
    • mamba for packages
  • Python
    • Scrape tools (bs4, requests)
    • scipy, scikit-learn, scikit-image
    • tensorflow
    • sympy
    • numpy
    • matplotlib
    • pandas
    • manim
  • Octave
  • R
  • Julia

TODO

  • Auto dark theme
  • Fix sage
  • GPU support (source)
  • Haskell (source)
  • Rust Kernel
  • C++ Kernel
  • Perl Kernel
  • Maxima Kernel