4.[Submit a pull request](https://github.com/PointCloudLibrary/pcl/wiki/A-step-by-step-guide-on-preparing-and-submitting-a-pull-request)(PR) with your changes.
4.[Submit a pull request](https://github.com/PointCloudLibrary/pcl/wiki/A-step-by-step-guide-on-preparing-and-submitting-a-pull-request)(PR) with your changes.
5. Watch for Travis to report a build success or failure for your PR on GitHub.
5. Watch for Travis to report a build success or failure for your PR on GitHub.
6. Discuss changes with the maintainers and address any build issues. Version conflicts are the most common problem. You may need to upgrade additional packages to fix build failures.
6. Discuss changes with the maintainers and address any build issues. Version conflicts are the most common problem. You may need to upgrade additional packages to fix build failures.
## Notes
In order to help identifying packages that can be updated you can use the following helper tool.
It will list all the packages installed in the `Dockerfile` that can be updated -- dependencies are filtered to focus only on requested packages.
```bash
$ make check-outdated/base-notebook
# INFO test_outdated:test_outdated.py:80 3/8 (38%) packages could be updated
**You should only enable `sudo` if you trust the user and/or if the container is running on an
**You should only enable `sudo` if you trust the user and/or if the container is running on an
isolated host.**
isolated host.** See [Docker security documentation](https://docs.docker.com/engine/security/userns-remap/) for more information about running containers as `root`.
## Using `pip install` or `conda install` in a Child Docker image
## Using `pip install` or `conda install` in a Child Docker image
@@ -13,7 +13,7 @@ This section provides details about the first.
...
@@ -13,7 +13,7 @@ This section provides details about the first.
## Core Stacks
## Core Stacks
The Jupyter team maintains a set of Docker image definitions in the [https://github.com/jupyter/docker-stacks](https://github.com/jupyter/docker-stacks) GitHub
The Jupyter team maintains a set of Docker image definitions in the [https://github.com/jupyter/docker-stacks](https://github.com/jupyter/docker-stacks) GitHub
repository. The following sections describe these images including their contents, relationships, and versioning strategy.
repository. The following sections describe these images including their contents, relationships, and versioning strategy.
### jupyter/base-notebook
### jupyter/base-notebook
...
@@ -43,7 +43,7 @@ repository. The following sections describe these images including their content
...
@@ -43,7 +43,7 @@ repository. The following sections describe these images including their content
* Everything in `jupyter/base-notebook`
* Everything in `jupyter/base-notebook`
*[Pandoc](http://pandoc.org) and [TeX Live](https://www.tug.org/texlive/) for notebook document conversion
*[Pandoc](http://pandoc.org) and [TeX Live](https://www.tug.org/texlive/) for notebook document conversion
*[git](https://git-scm.com/), [emacs](https://www.gnu.org/software/emacs/), [jed](https://www.jedsoft.org/jed/), [nano](https://www.nano-editor.org/), tzdata, and
*[git](https://git-scm.com/), [emacs](https://www.gnu.org/software/emacs/), [jed](https://www.jedsoft.org/jed/), [nano](https://www.nano-editor.org/), tzdata, and
unzip
unzip
### jupyter/r-notebook
### jupyter/r-notebook
...
@@ -57,15 +57,15 @@ unzip
...
@@ -57,15 +57,15 @@ unzip
* Everything in `jupyter/minimal-notebook` and its ancestor images
* Everything in `jupyter/minimal-notebook` and its ancestor images
* The [R](https://www.r-project.org/) interpreter and base environment
* The [R](https://www.r-project.org/) interpreter and base environment
*[IRKernel](https://irkernel.github.io/) to support R code in Jupyter notebooks
*[IRKernel](https://irkernel.github.io/) to support R code in Jupyter notebooks
*[tidyverse](https://www.tidyverse.org/) packages, including [ggplot2](http://ggplot2.org/), [dplyr](http://dplyr.tidyverse.org/),
*[tidyverse](https://www.tidyverse.org/) packages, including [ggplot2](http://ggplot2.org/), [dplyr](http://dplyr.tidyverse.org/),
[rcurl](https://cran.r-project.org/web/packages/RCurl/index.html), and [randomforest](https://cran.r-project.org/web/packages/randomForest/randomForest.pdf)
[rcurl](https://cran.r-project.org/web/packages/RCurl/index.html), and [randomforest](https://cran.r-project.org/web/packages/randomForest/randomForest.pdf)
packages from [conda-forge](https://conda-forge.github.io/feedstocks)
packages from [conda-forge](https://conda-forge.github.io/feedstocks)
### jupyter/scipy-notebook
### jupyter/scipy-notebook
...
@@ -77,14 +77,14 @@ packages from [conda-forge](https://conda-forge.github.io/feedstocks)
...
@@ -77,14 +77,14 @@ packages from [conda-forge](https://conda-forge.github.io/feedstocks)
`jupyter/scipy-notebook` includes popular packages from the scientific Python ecosystem.
`jupyter/scipy-notebook` includes popular packages from the scientific Python ecosystem.
* Everything in `jupyter/minimal-notebook` and its ancestor images
* Everything in `jupyter/minimal-notebook` and its ancestor images
[protobuf](https://developers.google.com/protocol-buffers/docs/pythontutorial), and [xlrd](http://www.python-excel.org/) packages
[protobuf](https://developers.google.com/protocol-buffers/docs/pythontutorial), and [xlrd](http://www.python-excel.org/) packages
*[ipywidgets](https://ipywidgets.readthedocs.io/en/stable/)for interactive visualizations in Python notebooks
*[ipywidgets](https://ipywidgets.readthedocs.io/en/stable/)and [ipympl](https://github.com/matplotlib/jupyter-matplotlib) for interactive visualizations and plots in Python notebooks
*[Facets](https://github.com/PAIR-code/facets) for visualizing machine learning datasets
*[Facets](https://github.com/PAIR-code/facets) for visualizing machine learning datasets
### jupyter/tensorflow-notebook
### jupyter/tensorflow-notebook
...
@@ -138,41 +138,41 @@ packages from [conda-forge](https://conda-forge.github.io/feedstocks)
...
@@ -138,41 +138,41 @@ packages from [conda-forge](https://conda-forge.github.io/feedstocks)
### Image Relationships
### Image Relationships
The following diagram depicts the build dependency tree of the core images. (i.e., the `FROM` statements in their Dockerfiles). Any given image inherits the
The following diagram depicts the build dependency tree of the core images. (i.e., the `FROM` statements in their Dockerfiles). Any given image inherits the
complete content of all ancestor images pointing to it.
complete content of all ancestor images pointing to it.
Pull requests to the `jupyter/docker-stacks` repository trigger builds of all images on Travis CI. These images are for testing purposes only and are not saved for
Pull requests to the `jupyter/docker-stacks` repository trigger builds of all images on Travis CI. These images are for testing purposes only and are not saved for
use. When pull requests merge to master, all images rebuild on Docker Cloud and become available to `docker pull` from Docker Hub.
use. When pull requests merge to master, all images rebuild on Docker Cloud and become available to `docker pull` from Docker Hub.
### Versioning
### Versioning
The `latest` tag in each Docker Hub repository tracks the master branch `HEAD` reference on GitHub. `latest` is a moving target, by definition, and will have
The `latest` tag in each Docker Hub repository tracks the master branch `HEAD` reference on GitHub. `latest` is a moving target, by definition, and will have
backward-incompatible changes regularly.
backward-incompatible changes regularly.
Every image on Docker Hub also receives a 12-character tag which corresponds with the git commit SHA that triggered the image build. You can inspect the state of
Every image on Docker Hub also receives a 12-character tag which corresponds with the git commit SHA that triggered the image build. You can inspect the state of
the `jupyter/docker-stacks` repository for that commit to review the definition of the image (e.g., images with tag 7c45ec67c8e7 were built from
the `jupyter/docker-stacks` repository for that commit to review the definition of the image (e.g., images with tag 7c45ec67c8e7 were built from
You must refer to git-SHA image tags when stability and reproducibility are important in your work. (e.g. `FROM jupyter/scipy-notebook:7c45ec67c8e7`, `docker run
You must refer to git-SHA image tags when stability and reproducibility are important in your work. (e.g. `FROM jupyter/scipy-notebook:7c45ec67c8e7`, `docker run
-it --rm jupyter/scipy-notebook:7c45ec67c8e7`). You should only use `latest` when a one-off container instance is acceptable (e.g., you want to briefly try a new
-it --rm jupyter/scipy-notebook:7c45ec67c8e7`). You should only use `latest` when a one-off container instance is acceptable (e.g., you want to briefly try a new
library in a notebook).
library in a notebook).
## Community Stacks
## Community Stacks
The core stacks are just a tiny sample of what's possible when combining Jupyter with other technologies. We encourage members of the Jupyter community to create
The core stacks are just a tiny sample of what's possible when combining Jupyter with other technologies. We encourage members of the Jupyter community to create
their own stacks based on the core images and link them below.
their own stacks based on the core images and link them below.
*[csharp-notebook is a community Jupyter Docker Stack image. Try C# in Jupyter Notebooks](https://github.com/tlinnet/csharp-notebook). The image includes more
*[csharp-notebook is a community Jupyter Docker Stack image. Try C# in Jupyter Notebooks](https://github.com/tlinnet/csharp-notebook). The image includes more
than 200 Jupyter Notebooks with example C# code and can readily be tried online via mybinder.org. Click here to launch
than 200 Jupyter Notebooks with example C# code and can readily be tried online via mybinder.org. Click here to launch
*[education-notebook is a community Jupyter Docker Stack image](https://github.com/umsi-mads/education-notebook). The image includes nbgrader and RISE on top of
*[education-notebook is a community Jupyter Docker Stack image](https://github.com/umsi-mads/education-notebook). The image includes nbgrader and RISE on top of
the datascience-notebook image. Click here to launch it on
the datascience-notebook image. Click here to launch it on
*[sage-notebook](https://github.com/sharpTrick/sage-notebook) is a community Jupyter Docker Stack image with the [sagemath](https://sagemath.org) kernel on top of
*[sage-notebook](https://github.com/sharpTrick/sage-notebook) is a community Jupyter Docker Stack image with the [sagemath](https://sagemath.org) kernel on top of
the minimal-notebook image. Click here to launch it on
the minimal-notebook image. Click here to launch it on
*[GPU-Jupyter](https://github.com/iot-salzburg/gpu-jupyter/): Leverage Jupyter Notebooks with the power of your NVIDIA GPU and perform GPU calculations using
*[GPU-Jupyter](https://github.com/iot-salzburg/gpu-jupyter/): Leverage Jupyter Notebooks with the power of your NVIDIA GPU and perform GPU calculations using
Tensorflow and Pytorch in collaborative notebooks.
Tensorflow and Pytorch in collaborative notebooks.
This is done by generating a Dockerfile, that consists of the **nvidia/cuda** base image,
This is done by generating a Dockerfile, that consists of the **nvidia/cuda** base image,
the well-maintained **docker-stacks** that is integrated as submodule
the well-maintained **docker-stacks** that is integrated as submodule
and GPU-able libraries like **Tensorflow**, **Keras** and **PyTorch** on top of it.
and GPU-able libraries like **Tensorflow**, **Keras** and **PyTorch** on top of it.
*[cgspatial-notebook](https://github.com/SCiO-systems/cgspatial-notebook) is a community Jupyter Docker Stack image. The image includes major geospatial Python &
*[cgspatial-notebook](https://github.com/SCiO-systems/cgspatial-notebook) is a community Jupyter Docker Stack image. The image includes major geospatial Python &
R libraries on top of the datascience-notebook image. Try it on
R libraries on top of the datascience-notebook image. Try it on