Reproduce Jupyter Notebooks and projects inside Docker Containers (based on Jupyter Docker-Stacks images) using the nbreproduce CLI.
- Free software: BSD license
- Documentation: https://econ-ark.github.io/nbreproduce/
$ pip install nbreproduce
-
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.ipynbexample in this repo.
$ nbreproduce --url https://github.com/econ-ark/nbreproduce/blob/master/tests/hello_world.ipynb
-
The
nbreproducewill create a new Jupyter notebook ending withfilename-reproduce.ipynbin the same directory which is a copy of the original notebook but executed inside the docker container environment. -
nbreproducerequires a special metadata tag (docker_image) inside in the Jupyter notebook to find the link to docker image on DockerHub. On the first run ofnbreproducewith 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. Thehello_world.ipynbexample can run with thescipy-notebookstandard image. Using the--dockerflag 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 -hto 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.
This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage_ project template.