From e1c0c75c9c2b6b8a1d74698a05bae488e0fcf7da Mon Sep 17 00:00:00 2001 From: Peter Parente Date: Sat, 22 Aug 2015 22:23:24 -0400 Subject: [PATCH] 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 --- all-spark-notebook/Dockerfile | 9 +++++---- all-spark-notebook/README.md | 5 +++-- minimal-notebook/Dockerfile | 8 ++++---- minimal-notebook/README.md | 7 ++++--- ...hon_notebook_config.py => jupyter_notebook_config.py} | 6 +++--- pyspark-notebook/Dockerfile | 9 +++++---- pyspark-notebook/README.md | 5 +++-- r-notebook/Dockerfile | 2 +- r-notebook/README.md | 5 +++-- scipy-notebook/Dockerfile | 7 +++++-- scipy-notebook/README.md | 5 +++-- 11 files changed, 39 insertions(+), 29 deletions(-) rename minimal-notebook/{ipython_notebook_config.py => jupyter_notebook_config.py} (84%) diff --git a/all-spark-notebook/Dockerfile b/all-spark-notebook/Dockerfile index f54859c0..19da3a27 100644 --- a/all-spark-notebook/Dockerfile +++ b/all-spark-notebook/Dockerfile @@ -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 @@ -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*' \ diff --git a/all-spark-notebook/README.md b/all-spark-notebook/README.md index de685225..8457f389 100644 --- a/all-spark-notebook/README.md +++ b/all-spark-notebook/README.md @@ -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. \ No newline at end of file diff --git a/minimal-notebook/Dockerfile b/minimal-notebook/Dockerfile index 9641c864..b3f9ce7c 100644 --- a/minimal-notebook/Dockerfile +++ b/minimal-notebook/Dockerfile @@ -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 \ No newline at end of file +RUN chown $NB_USER:$NB_USER $HOME/.jupyter/jupyter_notebook_config.py \ No newline at end of file diff --git a/minimal-notebook/README.md b/minimal-notebook/README.md index 1c3bcf86..6475dafe 100644 --- a/minimal-notebook/README.md +++ b/minimal-notebook/README.md @@ -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. \ No newline at end of file diff --git a/minimal-notebook/ipython_notebook_config.py b/minimal-notebook/jupyter_notebook_config.py similarity index 84% rename from minimal-notebook/ipython_notebook_config.py rename to minimal-notebook/jupyter_notebook_config.py index 26ae77d8..74ecdc11 100644 --- a/minimal-notebook/ipython_notebook_config.py +++ b/minimal-notebook/jupyter_notebook_config.py @@ -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 '*' diff --git a/pyspark-notebook/Dockerfile b/pyspark-notebook/Dockerfile index f7e8fb6d..b5f38447 100644 --- a/pyspark-notebook/Dockerfile +++ b/pyspark-notebook/Dockerfile @@ -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 @@ -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*' \ diff --git a/pyspark-notebook/README.md b/pyspark-notebook/README.md index 7001bad1..17c37197 100644 --- a/pyspark-notebook/README.md +++ b/pyspark-notebook/README.md @@ -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. \ No newline at end of file diff --git a/r-notebook/Dockerfile b/r-notebook/Dockerfile index 37e1c720..c2644c50 100644 --- a/r-notebook/Dockerfile +++ b/r-notebook/Dockerfile @@ -1,5 +1,5 @@ # Copyright (c) Jupyter Development Team. -FROM jupyter/minimal-notebook +FROM jupyter/minimal-notebook:4.0 MAINTAINER Jupyter Project diff --git a/r-notebook/README.md b/r-notebook/README.md index b8b98cc9..ad3a9f7f 100644 --- a/r-notebook/README.md +++ b/r-notebook/README.md @@ -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. \ No newline at end of file diff --git a/scipy-notebook/Dockerfile b/scipy-notebook/Dockerfile index e5c7daed..1421ffae 100644 --- a/scipy-notebook/Dockerfile +++ b/scipy-notebook/Dockerfile @@ -1,4 +1,5 @@ -FROM jupyter/minimal-notebook +# Copyright (c) Jupyter Development Team. +FROM jupyter/minimal-notebook:4.0 MAINTAINER Jupyter Project @@ -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*' \ diff --git a/scipy-notebook/README.md b/scipy-notebook/README.md index 8a30ff40..20cc4dbf 100644 --- a/scipy-notebook/README.md +++ b/scipy-notebook/README.md @@ -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. \ No newline at end of file