Skip to content

Reproduce Jupyter Notebooks inside Docker Containers.

License

Notifications You must be signed in to change notification settings

econ-ark/nbreproduce

Repository files navigation

nbreproduce

PyPI version

Reproduce Jupyter Notebooks and projects inside Docker Containers (based on Jupyter Docker-Stacks images) using the nbreproduce CLI.

Installation:

$ pip install nbreproduce

Features:

  • Reproduce a Jupyter Notebook (URL or local file) inside a Docker container for consistent builds across all the devices capable of running docker and Python.

  • To test the hello_world.ipynb example in this repo.

$ nbreproduce --url https://github.com/econ-ark/nbreproduce/blob/master/tests/hello_world.ipynb
  • The nbreproduce will create a new Jupyter notebook ending with filename-reproduce.ipynb in the same directory which is a copy of the original notebook but executed inside the docker container environment.

  • nbreproduce requires a special metadata tag (docker_image) inside in the Jupyter notebook to find the link to docker image on DockerHub. On the first run of nbreproduce with a normal Jupyter notebook it will prompt you to add a docker image tag, these docker images are built on top of Jupyter Docker-Stacks. The hello_world.ipynb example can run with the scipy-notebook standard image. Using the --docker flag you can point it towards the right docker image. (Currently only DockerHub imgags are supported)

$ nbreproduce --docker jupyter/scipy-notebook:latest hello_world.ipynb
  • For a Jupyter notebook which already has the metadata tag (docker_image), we can directly execute the notebook, kind of like papermill but inside a standardised docker environemnt :)
$ nbreproduce hello_world.ipynb
  • Reproduce entire folders and projects inside a Docker environment (it works by mounting the current directory to the docker container and running a bash file which has all the required steps to reproduce all the content like figures, builiding latex documents, slides, etc).
$ nbreproduce --docker econark/econ-ark-notebook do_all.sh

Executing do_all.sh using the econark/econ-ark-notebook environment inside a docker container.
Executing do_all.sh in the current directory /Users/ms/dev/REMARK/REMARKs/CGMPortfolio
....
....
....
  • The project is in pre alpha developement mode, so things will break. Don't use this in production. The documentation website doesn't exist yet, use nbreproduce -h to get a quick desciption of various flags. Feel free to open up any issue for suggestions or submit a PR to fix bugs/implement new features.

Credits

This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage_ project template.

Cookiecutter

audreyr/cookiecutter-pypackage