64 lines
2.0 KiB
Markdown
64 lines
2.0 KiB
Markdown
# 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. Unfortunately, this also means that they take forever to build.
|
|
|
|
|
|
## 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
|