Mark d4666c5a0d | ||
---|---|---|
.. | ||
build | ||
.gitignore | ||
README.md | ||
docker-compose.yml |
README.md
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.
Image contents
- jupyter + all dependencies
- Python + many packages
- Octave
- R
- Julia
TODO
- Fix sage
- Haskell (source)
- Maxima Kernel
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.
As a Server
Add the following lines and remove c.ServerApp.token
. This allows remote access and enables password authentication. Warning: be careful. Anyone with access to this server has a shell in your system.
c.NotebookApp.allow_remote_access = True
c.NotebookApp.allow_origin = "*"
c.ServerApp.ip = "*"
c.ServerApp.password = u"pwd_str"
c.ServerApp.open_browser = False
Passwords can be generated with
from jupyter_server.auth import passwd
passwd()