Currated Docker images for use with Jupyter and Pangeo
This repository contains a few currated Docker images that can be used with deployments of the Pangeo Helm Chart. Each of the images in this repository are configured and built using repo2docker and are continuously deployed to DockerHub. Importantly, each image built in this repo includes the minimum required libraries to do scalable computations with Pangeo (via dask-kubernetes).
Image | Description | Link | Badges |
---|---|---|---|
base-notebook | A bare-bones image with Jupyter and Dask. | DockerHub | |
pangeo-notebook | A complete image with lots of Python packages | DockerHub | |
pangeo-esip | An image customized for ESIP use | DockerHub |
You can customize the images here in comon ways by using the image variants
that have the -onbuild
suffix. If your Dockerfile inherits from an
-onbuild
Pangeo image, you automatically get the following features:
-
The contents of your directory are copied with appropriate permissions into the image. The files will be present under the directory pointed to by
${REPO_DIR}
docker environment variable. -
If you have any of the following files in your repository, they are used to automatically customize the image similar to what
repo2docker
(used by mybinder.org) does:a.
requirements.txt
installs python packages withpip
b.environment.yml
installsconda
packages c.apt.txt
lists ubuntu packages to be installed d.postBuild
is a script (in any language) that is run automatically after other customization steps for you to execute arbitrary code.These files could also be inside a
binder/
directory rather than the top level of your repository if you would like.
For example, if you want to start from the base pangeo-notebook
image but
add the django
python package, you would do the following.
-
Create a
Dockerfile
in your repo with just the following content:FROM pangeo/pangeo-notebook-onbuild:<version>
-
Add a
requirements.txt
file with the following contentsdjango
And that's it! Now you can build the image any way you wish (on a binder instance,
with repo2docker, or just with docker build
), and it'll do the customizations
for you automatically.
It is easy to add additional images. The basic steps involved are:
- Open an Issue to discuss adding your image.
- Copy the
base-notebook
directory and name it something informative. - Modify the contents of the
binder
directory, adding any configuration you need according to the repo2docker documentation. - Edit the TravisCI configuration file to inclue the new image.
- Push your changes to GitHub and open a Pull Request.
The images in Pangeo-stacks are built and deployed continuously using TravisCI. Images are versioned using the CALVER system.
The images here can be built locally using repo2docker. The following example demonstrates how to build the base-notebook
image:
repo2docker --no-run --user-name=jovyan --user-id 1000 \
--image-name=pangeo/base-notebook ./base-notebook
- Jupyter/docker-stacks: Ready-to-run Docker images containing Jupyter applications
- repo2docker: A tool to build, run, and push Docker images from source code repositories that run via a Jupyter server
- Pangeo Helm Chart: The helm chart for installing Pangeo.