# Jupyter Docker Image This directory contains build files for a complete jupyter environment. It is based off the following repositories: - https://github.com/jupyter/docker-stacks - https://github.com/rgriffogoes/scraper-notebook - https://github.com/sharpTrick/sage-notebook 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`: ```python 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](https://github.com/iot-salzburg/gpu-jupyter)) - Haskell ([source](https://github.com/IHaskell/ihaskell-notebook)) - Rust Kernel - C++ Kernel - Perl Kernel - Maxima Kernel