Upgrade to Jupyter Notebook

* Change minimal-notebook to install notebook=4.0*
* Change other Dockerfile to point to 4.0 Docker Hub tag (to be built)
* Change config and pem file paths for jupyter
* Install ipywidgets in all containers that have a Python stack
* Update all READMEs to describe v3.2 and v4.0 since Docker Hub only shows one README for all tags

Contribution (c) Copyright IBM Corp. 2015
This commit is contained in:
Peter Parente
2015-08-22 22:23:24 -04:00
parent 4dbc42b5a9
commit e1c0c75c9c
11 changed files with 39 additions and 29 deletions

View File

@@ -1,6 +1,5 @@
# Copyright (c) IPython Development Team.
# (c) Copyright IBM Corp. 2015
FROM jupyter/minimal-notebook
# Copyright (c) Jupyter Development Team.
FROM jupyter/minimal-notebook:4.0
MAINTAINER Jupyter Project <jupyter@googlegroups.com>
@@ -54,6 +53,7 @@ ENV MESOS_NATIVE_LIBRARY /usr/local/lib/libmesos.so
# Install Python 3 packages
RUN conda install --yes \
'ipywidgets=4.0*' \
'pandas=0.16*' \
'matplotlib=1.4*' \
'scipy=0.15*' \
@@ -63,7 +63,8 @@ RUN conda install --yes \
# Install Python 2 packages and kernel spec
RUN conda create -p $CONDA_DIR/envs/python2 python=2.7 \
'ipython=3.2*' \
'ipython=4.0*' \
'ipywidgets=4.0*' \
'pandas=0.16*' \
'matplotlib=1.4*' \
'scipy=0.15*' \

View File

@@ -2,7 +2,7 @@
## What it Gives You
* Jupyter Notebook server v3.2.x
* Jupyter Notebook server (v4.0.x or v3.2.x, see tag)
* Conda Python 3.4.x and Python 2.7.x environments
* Conda R 3.1.x environment
* Scala 2.10.x
@@ -205,6 +205,7 @@ You may customize the execution of the Docker container and the Notebook server
* `-e USE_HTTPS=yes` - Configures Jupyter Notebook to accept encrypted HTTPS connections. If a `pem` file containing a SSL certificate and key is not found in `/home/jovyan/.ipython/profile_default/security/notebook.pem`, the container will generate a self-signed certificate for you.
* `-e GRANT_SUDO=yes` - Gives the `jovyan` user passwordless `sudo` capability. Useful for installing OS packages. **You should only enable `sudo` if you trust the user or if the container is running on an isolated host.**
* `-v /some/host/folder/for/work:/home/jovyan/work` - Host mounts the default working directory on the host to preserve work even when the container is destroyed and recreated (e.g., during an upgrade).
* `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v3.2.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v4.0.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.local/share/jupyter/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* `-e INTERFACE=10.10.10.10` - Configures Jupyter Notebook to listen on the given interface. Defaults to '*', all interfaces, which is appropriate when running using default bridged Docker networking. When using Docker's `--net=host`, you may wish to use this option to specify a particular network interface.
* `-e PORT=8888` - Configures Jupyter Notebook to listen on the given port. Defaults to 8888, which is the port exposed within the Dockerfile for the image. When using Docker's `--net=host`, you may wish to use this option to specify a particular port.

View File

@@ -53,12 +53,12 @@ WORKDIR $WORK
# Install Jupyter notebook
RUN conda install --yes \
'ipython-notebook=3.2*' \
'notebook=4.0*' \
terminado \
&& conda clean -yt
# Configure Jupyter
RUN ipython profile create
RUN jupyter notebook --generate-config
# Configure container startup
EXPOSE 8888
@@ -66,7 +66,7 @@ USER root
CMD ["supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
# Add local files as late as possible to avoid cache busting
COPY ipython_notebook_config.py $HOME/.ipython/profile_default/
COPY jupyter_notebook_config.py $HOME/.jupyter/
COPY notebook.conf /etc/supervisor/conf.d/
COPY enable_sudo.sh /usr/local/bin/
RUN chown $NB_USER:$NB_USER $HOME/.ipython/profile_default/ipython_notebook_config.py
RUN chown $NB_USER:$NB_USER $HOME/.jupyter/jupyter_notebook_config.py

View File

@@ -2,7 +2,7 @@
## What it Gives You
* Jupyter Notebook server v3.2.x
* Jupyter Notebook server (v4.0.x or v3.2.x, see tag)
* Conda Python 3.4.x
* No preinstalled scientific computing packages
* Options for HTTPS, password auth, and passwordless `sudo`
@@ -20,9 +20,10 @@ docker run -d -p 8888:8888 jupyter/minimal-notebook
You may customize the execution of the Docker container and the Notebook server it contains with the following optional arguments.
* `-e PASSWORD="YOURPASS"` - Configures Jupyter Notebook to require the given password. Should be conbined with `USE_HTTPS` on untrusted networks.
* `-e USE_HTTPS=yes` - Configures Jupyter Notebook to accept encrypted HTTPS connections. If a `pem` file containing a SSL certificate and key is not found in `/home/jovyan/.ipython/profile_default/security/notebook.pem`, the container will generate a self-signed certificate for you.
* `-e USE_HTTPS=yes` - Configures Jupyter Notebook to accept encrypted HTTPS connections. If a `pem` file containing a SSL certificate and key is not provided (see below), the container will generate a self-signed certificate for you.
* `-e GRANT_SUDO=yes` - Gives the `jovyan` user passwordless `sudo` capability. Useful for installing OS packages. **You should only enable `sudo` if you trust the user or if the container is running on an isolated host.**
* `-v /some/host/folder/for/work:/home/jovyan/work` - Host mounts the default working directory on the host to preserve work even when the container is destroyed and recreated (e.g., during an upgrade).
* `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v3.2.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v4.0.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.local/share/jupyter/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* `-e INTERFACE=10.10.10.10` - Configures Jupyter Notebook to listen on the given interface. Defaults to '*', all interfaces, which is appropriate when running using default bridged Docker networking. When using Docker's `--net=host`, you may wish to use this option to specify a particular network interface.
* `-e PORT=8888` - Configures Jupyter Notebook to listen on the given port. Defaults to 8888, which is the port exposed within the Dockerfile for the image. When using Docker's `--net=host`, you may wish to use this option to specify a particular port.

View File

@@ -1,9 +1,9 @@
# Copyright (c) IPython Development Team.
# (c) Copyright IBM Corp. 2015
# Copyright (c) Jupyter Development Team.
from jupyter_core.paths import jupyter_data_dir
import subprocess
import os
PEM_FILE = os.path.join(os.path.dirname(__file__), 'security/notebook.pem')
PEM_FILE = os.path.join(jupyter_data_dir(), 'notebook.pem')
c = get_config()
c.NotebookApp.ip = os.getenv('INTERFACE', '') or '*'

View File

@@ -1,6 +1,5 @@
# Copyright (c) IPython Development Team.
# (c) Copyright IBM Corp. 2015
FROM jupyter/minimal-notebook
# Copyright (c) Jupyter Development Team.
FROM jupyter/minimal-notebook:4.0
MAINTAINER Jupyter Project <jupyter@googlegroups.com>
@@ -32,6 +31,7 @@ ENV MESOS_NATIVE_LIBRARY /usr/local/lib/libmesos.so
# Install Python 3 packages
RUN conda install --yes \
'ipywidgets=4.0*' \
'pandas=0.16*' \
'matplotlib=1.4*' \
'scipy=0.15*' \
@@ -41,7 +41,8 @@ RUN conda install --yes \
# Install Python 2 packages and kernel spec
RUN conda create -p $CONDA_DIR/envs/python2 python=2.7 \
'ipython=3.2*' \
'ipython=4.0*' \
'ipywidgets=4.0*' \
'pandas=0.16*' \
'matplotlib=1.4*' \
'scipy=0.15*' \

View File

@@ -2,7 +2,7 @@
## What it Gives You
* Jupyter Notebook server v3.2.x
* Jupyter Notebook server (v4.0.x or v3.2.x, see tag)
* Conda Python 3.4.x and Python 2.7.x environments
* pyspark, pandas, matplotlib, scipy, seaborn, scikit-learn pre-installed
* Spark 1.4.1 for use in local mode or to connect to a cluster of Spark workers
@@ -95,6 +95,7 @@ You may customize the execution of the Docker container and the Notebook server
* `-e USE_HTTPS=yes` - Configures Jupyter Notebook to accept encrypted HTTPS connections. If a `pem` file containing a SSL certificate and key is not found in `/home/jovyan/.ipython/profile_default/security/notebook.pem`, the container will generate a self-signed certificate for you.
* `-e GRANT_SUDO=yes` - Gives the `jovyan` user passwordless `sudo` capability. Useful for installing OS packages. **You should only enable `sudo` if you trust the user or if the container is running on an isolated host.**
* `-v /some/host/folder/for/work:/home/jovyan/work` - Host mounts the default working directory on the host to preserve work even when the container is destroyed and recreated (e.g., during an upgrade).
* `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v3.2.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v4.0.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.local/share/jupyter/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* `-e INTERFACE=10.10.10.10` - Configures Jupyter Notebook to listen on the given interface. Defaults to '*', all interfaces, which is appropriate when running using default bridged Docker networking. When using Docker's `--net=host`, you may wish to use this option to specify a particular network interface.
* `-e PORT=8888` - Configures Jupyter Notebook to listen on the given port. Defaults to 8888, which is the port exposed within the Dockerfile for the image. When using Docker's `--net=host`, you may wish to use this option to specify a particular port.

View File

@@ -1,5 +1,5 @@
# Copyright (c) Jupyter Development Team.
FROM jupyter/minimal-notebook
FROM jupyter/minimal-notebook:4.0
MAINTAINER Jupyter Project <jupyter@googlegroups.com>

View File

@@ -2,7 +2,7 @@
## What it Gives You
* Jupyter Notebook server v3.2.x
* Jupyter Notebook server (v4.0.x or v3.2.x, see tag)
* Conda R v3.2.x and channel
* plyr, devtools, dplyr, ggplot2, tidyr, shiny, rmarkdown, forecast, stringr, rsqlite, reshape2, nycflights13, caret, rcurl, and randomforest pre-installed
* Options for HTTPS, password auth, and passwordless `sudo`
@@ -23,6 +23,7 @@ You may customize the execution of the Docker container and the Notebook server
* `-e USE_HTTPS=yes` - Configures Jupyter Notebook to accept encrypted HTTPS connections. If a `pem` file containing a SSL certificate and key is not found in `/home/jovyan/.ipython/profile_default/security/notebook.pem`, the container will generate a self-signed certificate for you.
* `-e GRANT_SUDO=yes` - Gives the `jovyan` user passwordless `sudo` capability. Useful for installing OS packages. **You should only enable `sudo` if you trust the user or if the container is running on an isolated host.**
* `-v /some/host/folder/for/work:/home/jovyan/work` - Host mounts the default working directory on the host to preserve work even when the container is destroyed and recreated (e.g., during an upgrade).
* `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v3.2.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v4.0.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.local/share/jupyter/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* `-e INTERFACE=10.10.10.10` - Configures Jupyter Notebook to listen on the given interface. Defaults to '*', all interfaces, which is appropriate when running using default bridged Docker networking. When using Docker's `--net=host`, you may wish to use this option to specify a particular network interface.
* `-e PORT=8888` - Configures Jupyter Notebook to listen on the given port. Defaults to 8888, which is the port exposed within the Dockerfile for the image. When using Docker's `--net=host`, you may wish to use this option to specify a particular port.

View File

@@ -1,4 +1,5 @@
FROM jupyter/minimal-notebook
# Copyright (c) Jupyter Development Team.
FROM jupyter/minimal-notebook:4.0
MAINTAINER Jupyter Project <jupyter@googlegroups.com>
@@ -6,6 +7,7 @@ USER jovyan
# Install Python 3 packages
RUN conda install --yes \
'ipywidgets=4.0*' \
'pandas=0.16*' \
'matplotlib=1.4*' \
'scipy=0.15*' \
@@ -24,7 +26,8 @@ RUN conda install --yes \
# Install Python 2 packages and kernel spec
RUN conda create -p $CONDA_DIR/envs/python2 python=2.7 \
'ipython=3.2*' \
'ipython=4.0*' \
'ipywidgets=4.0*' \
'pandas=0.16*' \
'matplotlib=1.4*' \
'scipy=0.15*' \

View File

@@ -2,7 +2,7 @@
## What it Gives You
* Jupyter Notebook server v3.2.x
* Jupyter Notebook server (v4.0.x or v3.2.x, see tag)
* Conda Python 3.4.x and Python 2.7.x environments
* pandas, matplotlib, scipy, seaborn, scikit-learn, scikit-image, sympy, cython, patsy, statsmodel, cloudpickle, dill, numba, bokeh pre-installed
* Options for HTTPS, password auth, and passwordless `sudo`
@@ -23,6 +23,7 @@ You may customize the execution of the Docker container and the Notebook server
* `-e USE_HTTPS=yes` - Configures Jupyter Notebook to accept encrypted HTTPS connections. If a `pem` file containing a SSL certificate and key is not found in `/home/jovyan/.ipython/profile_default/security/notebook.pem`, the container will generate a self-signed certificate for you.
* `-e GRANT_SUDO=yes` - Gives the `jovyan` user passwordless `sudo` capability. Useful for installing OS packages. **You should only enable `sudo` if you trust the user or if the container is running on an isolated host.**
* `-v /some/host/folder/for/work:/home/jovyan/work` - Host mounts the default working directory on the host to preserve work even when the container is destroyed and recreated (e.g., during an upgrade).
* `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v3.2.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.ipython/profile_default/security/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* **(v4.0.x)** `-v /some/host/folder/for/server.pem:/home/jovyan/.local/share/jupyter/notebook.pem` - Mounts a SSL certificate plus key for `USE_HTTPS`. Useful if you have a real certificate for the domain under which you are running the Notebook server.
* `-e INTERFACE=10.10.10.10` - Configures Jupyter Notebook to listen on the given interface. Defaults to '*', all interfaces, which is appropriate when running using default bridged Docker networking. When using Docker's `--net=host`, you may wish to use this option to specify a particular network interface.
* `-e PORT=8888` - Configures Jupyter Notebook to listen on the given port. Defaults to 8888, which is the port exposed within the Dockerfile for the image. When using Docker's `--net=host`, you may wish to use this option to specify a particular port.