Merge branch 'master' into asalikhov/update

This commit is contained in:
Ayaz Salikhov
2021-05-23 22:55:05 +03:00
16 changed files with 866 additions and 506 deletions

View File

@@ -44,7 +44,7 @@ This change is tracked in the issue [#1217](https://github.com/jupyter/docker-st
You can try a
[relatively recent build of the jupyter/base-notebook image on mybinder.org](https://mybinder.org/v2/gh/jupyter/docker-stacks/master?filepath=README.ipynb)
by simply clicking the preceding link. The image used in binder was last updated on 19 Jan 2021.
by simply clicking the preceding link. The image used in binder was last updated on 22 May 2021.
Otherwise, the two examples below may help you get started if
you [have Docker installed](https://docs.docker.com/install/) know
[which Docker image](https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html) you
@@ -53,7 +53,7 @@ want to use, and want to launch a single Jupyter Notebook server in a container.
The [User Guide on ReadTheDocs](https://jupyter-docker-stacks.readthedocs.io/) describes additional
uses and features in detail.
**Example 1:** This command pulls the `jupyter/scipy-notebook` image tagged `17aba6048f44` from
**Example 1:** This command pulls the `jupyter/scipy-notebook` image tagged `33add21fab64` from
Docker Hub if it is not already present on the local host. It then starts a container running a
Jupyter Notebook server and exposes the server on host port 8888. The server logs appear in the
terminal. Visiting `http://<hostname>:8888/?token=<token>` in a browser loads the Jupyter Notebook
@@ -61,16 +61,16 @@ dashboard page, where `hostname` is the name of the computer running docker and
secret token printed in the console. The container remains intact for restart after the notebook
server exits.
docker run -p 8888:8888 jupyter/scipy-notebook:17aba6048f44
docker run -p 8888:8888 jupyter/scipy-notebook:33add21fab64
**Example 2:** This command performs the same operations as **Example 1**, but it exposes the server
on host port 10000 instead of port 8888. Visiting `http://<hostname>:10000/?token=<token>` in a
browser loads JupyterLab, where `hostname` is the name of the computer running docker and `token` is
the secret token printed in the console.::
docker run -p 10000:8888 jupyter/scipy-notebook:17aba6048f44
docker run -p 10000:8888 jupyter/scipy-notebook:33add21fab64
**Example 3:** This command pulls the `jupyter/datascience-notebook` image tagged `9b06df75e445`
**Example 3:** This command pulls the `jupyter/datascience-notebook` image tagged `33add21fab64`
from Docker Hub if it is not already present on the local host. It then starts an _ephemeral_
container running a Jupyter Notebook server and exposes the server on host port 10000. The command
mounts the current working directory on the host as `/home/jovyan/work` in the container. The server
@@ -79,7 +79,7 @@ JupyterLab, where `hostname` is the name of the computer running docker and `tok
token printed in the console. Docker destroys the container after notebook server exit, but any
files written to `~/work` in the container remain intact on the host.
docker run --rm -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v "$PWD":/home/jovyan/work jupyter/datascience-notebook:9b06df75e445
docker run --rm -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v "$PWD":/home/jovyan/work jupyter/datascience-notebook:33add21fab64
## Contributing

View File

@@ -21,7 +21,7 @@ RUN apt-get update --yes && \
USER $NB_UID
# R packages
# R packages including IRKernel which gets installed globally.
RUN mamba install --quiet --yes \
'r-base=4.0.5' \
'r-ggplot2=3.3*' \

View File

@@ -2,11 +2,11 @@
# Distributed under the terms of the Modified BSD License.
# https://hub.docker.com/r/jupyter/base-notebook/tags
ARG BASE_CONTAINER=jupyter/base-notebook:aec555e49be6
ARG BASE_CONTAINER=jupyter/base-notebook:33add21fab64
FROM $BASE_CONTAINER
LABEL maintainer="Jupyter Project <jupyter@googlegroups.com>"
ENV TAG="aec555e49be6"
ENV TAG="33add21fab64"
WORKDIR $HOME
COPY binder/README.ipynb .

View File

@@ -67,10 +67,13 @@ RUN conda install --quiet --yes \
'r-randomforest=4.6*' \
'r-rcurl=1.98*' \
'r-rmarkdown=2.8*' \
'r-rodbc=1.3*' \
'r-rsqlite=2.2*' \
'r-shiny=1.6*' \
'r-tidymodels=0.1*' \
'r-tidyverse=1.3*' \
'rpy2=3.4*' && \
'rpy2=3.4*' \
'unixodbc=2.3.*' && \
conda clean --all -f -y && \
fix-permissions "${CONDA_DIR}" && \
fix-permissions "/home/${NB_USER}"

View File

@@ -10,21 +10,21 @@ Jupyter Docker Stacks are a set of ready-to-run Docker images containing Jupyter
Quick Start
-----------
You can try a `recent build of the jupyter/base-notebook image on mybinder.org <https://mybinder.org/v2/gh/jupyter/docker-stacks/master?filepath=README.ipynb>`_ by simply clicking the preceding link. Otherwise, the two examples below may help you get started if you `have Docker installed <https://docs.docker.com/install/>`_, know :doc:`which Docker image <using/selecting>` you want to use, and want to launch a single Jupyter Notebook server in a container.
You can try a `recent build of the jupyter/base-notebook image on mybinder.org <https://mybinder.org/v2/gh/jupyter/docker-stacks/master?filepath=README.ipynb>`_ by simply clicking the preceding link. Otherwise, three examples below may help you get started if you `have Docker installed <https://docs.docker.com/install/>`_, know :doc:`which Docker image <using/selecting>` you want to use, and want to launch a single Jupyter Notebook server in a container.
The other pages in this documentation describe additional uses and features in detail.
**Example 1:** This command pulls the ``jupyter/scipy-notebook`` image tagged ``17aba6048f44`` from Docker Hub if it is not already present on the local host. It then starts a container running a Jupyter Notebook server and exposes the server on host port 8888. The server logs appear in the terminal. Visiting ``http://<hostname>:8888/?token=<token>`` in a browser loads the Jupyter Notebook dashboard page, where ``hostname`` is the name of the computer running docker and ``token`` is the secret token printed in the console. The container remains intact for restart after the notebook server exits.::
**Example 1:** This command pulls the ``jupyter/scipy-notebook`` image tagged ``33add21fab64`` from Docker Hub if it is not already present on the local host. It then starts a container running a Jupyter Notebook server and exposes the server on host port 8888. The server logs appear in the terminal. Visiting ``http://<hostname>:8888/?token=<token>`` in a browser loads the Jupyter Notebook dashboard page, where ``hostname`` is the name of the computer running docker and ``token`` is the secret token printed in the console. The container remains intact for restart after the notebook server exits.::
docker run -p 8888:8888 jupyter/scipy-notebook:17aba6048f44
docker run -p 8888:8888 jupyter/scipy-notebook:33add21fab64
**Example 2:** This command performs the same operations as **Example 1**, but it exposes the server on host port 10000 instead of port 8888. Visiting ``http://<hostname>:10000/?token=<token>`` in a browser loads JupyterLab, where ``hostname`` is the name of the computer running docker and ``token`` is the secret token printed in the console.::
**Example 2:** This command performs the same operations as **Example 1**, but it exposes the server on host port 10000 instead of port 8888. Visiting ``http://<hostname>:10000/?token=<token>`` in a browser loads Jupyter Notebook server, where ``hostname`` is the name of the computer running docker and ``token`` is the secret token printed in the console.::
docker run -p 10000:8888 jupyter/scipy-notebook:17aba6048f44
docker run -p 10000:8888 jupyter/scipy-notebook:33add21fab64
**Example 3:** This command pulls the ``jupyter/datascience-notebook`` image tagged ``9b06df75e445`` from Docker Hub if it is not already present on the local host. It then starts an *ephemeral* container running a Jupyter Notebook server and exposes the server on host port 10000. The command mounts the current working directory on the host as ``/home/jovyan/work`` in the container. The server logs appear in the terminal. Visiting ``http://<hostname>:10000/?token=<token>`` in a browser loads JupyterLab, where ``hostname`` is the name of the computer running docker and ``token`` is the secret token printed in the console. Docker destroys the container after notebook server exit, but any files written to ``~/work`` in the container remain intact on the host.::
**Example 3:** This command pulls the ``jupyter/datascience-notebook`` image tagged ``33add21fab64`` from Docker Hub if it is not already present on the local host. It then starts an *ephemeral* container running a Jupyter Notebook server and exposes the server on host port 10000. The command mounts the current working directory on the host as ``/home/jovyan/work`` in the container. The server logs appear in the terminal. Visiting ``http://<hostname>:10000/lab?token=<token>`` in a browser loads JupyterLab, where ``hostname`` is the name of the computer running docker and ``token`` is the secret token printed in the console. Docker destroys the container after notebook server exit, but any files written to ``~/work`` in the container remain intact on the host.::
docker run --rm -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v "$PWD":/home/jovyan/work jupyter/datascience-notebook:9b06df75e445
docker run --rm -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v "$PWD":/home/jovyan/work jupyter/datascience-notebook:33add21fab64
Table of Contents
-----------------

View File

@@ -9,54 +9,54 @@ msgid ""
msgstr ""
"Project-Id-Version: docker-stacks latest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-28 00:44+0000\n"
"POT-Creation-Date: 2021-05-23 19:28+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"
"Generated-By: Babel 2.9.1\n"
# 22f1bd46933144e092bf92e3af4c6f4f
#: ../../index.rst:32
#: ../../index.rst:32 576c138188694b4588144d2113382333
msgid "User Guide"
msgstr ""
# f35d75046f8c42ae8cab58d826154823
#: ../../index.rst:42
#: ../../index.rst:42 7dde2f42757d495c84bf9fd119eb73c2
msgid "Contributor Guide"
msgstr ""
# a737afe726cd49c4986d75b7d74eeed3
#: ../../index.rst:54
#: ../../index.rst:55 43fed73a9efa4c5f91dbf7ff04543b7c
msgid "Maintainer Guide"
msgstr ""
#: ../../index.rst:60
#: ../../index.rst:61
msgid "Jupyter Discourse Forum"
msgstr ""
#: ../../index.rst:60
#: ../../index.rst:61
msgid "Stacks Issue Tracker"
msgstr ""
#: ../../index.rst:60
#: ../../index.rst:61
msgid "Jupyter Website"
msgstr ""
# 9cd216fa91ef40bbb957373faaf93732
#: ../../index.rst:60 774ed8768c6c4144ab19c7d7518d1932
#: ../../index.rst:61 6e7a598b9b444be1ab510d1beefde84b
msgid "Getting Help"
msgstr ""
# a0aa0bcd999c4c5e96cc57fd77780f96
#: ../../index.rst:2 dbc22a0d800749c6a2d4628595fe57b3
#: ../../index.rst:2 e64ef36433044ceaa26545f1710ee198
msgid "Jupyter Docker Stacks"
msgstr ""
# 5d06f458dc524214b2c97e865dd2dc81
#: ../../index.rst:4 8183867bf813431bb337b0594884f0fe
#: ../../index.rst:4 f7ec654b90d94a65ac368c9b2e2c265e
msgid ""
"Jupyter Docker Stacks are a set of ready-to-run Docker images containing "
"Jupyter applications and interactive computing tools. You can use a stack"
@@ -64,49 +64,47 @@ msgid ""
msgstr ""
# c69f151c806e4cdf9bebda05b06c760e
#: ../../index.rst:6 271a99cccdd3476b9b9696e295647c92
#: ../../index.rst:6 106d0414d337406286a4c0b5b747a409
msgid "Start a personal Jupyter Notebook server in a local Docker container"
msgstr ""
# b26271409ab743b2a349b3a8ca95233e
#: ../../index.rst:7 f01a318271d64f958c682ae241157bb2
#: ../../index.rst:7 0c98c03ffb9540debefba5617c2ba3d3
msgid "Run JupyterLab servers for a team using JupyterHub"
msgstr ""
# 4d60f4325fff4ffcad12703a4b9d6781
#: ../../index.rst:8 8e3b6e8fe5e64b8a9523c0dd5b0369c9
#: ../../index.rst:8 67f908c6e29846eb9a0efe071d77a11e
msgid "Write your own project Dockerfile"
msgstr ""
# 78b0d31eb6e9462888eef92e6a84cdb7
#: ../../index.rst:11 60ec3253d09e40be8e6852a495248467
#: ../../index.rst:11 433cd0ea65984ca5b7f0bcd8d28effd5
msgid "Quick Start"
msgstr ""
# d4c0e237dbe74e0d9afbf2b2f0e219c8
#: ../../index.rst:13 38d5e9d5d0504acaa04b388f2ba031fc
#: ../../index.rst:13 d491156eb09d443db1d18aabe52df40f
msgid ""
"You can try a `recent build of the jupyter/base-notebook image on "
"mybinder.org <https://mybinder.org/v2/gh/jupyter/docker-"
"stacks/master?filepath=README.ipynb>`_ by simply clicking the preceding "
"link. Otherwise, the two examples below may help you get started if you "
"link. Otherwise, three examples below may help you get started if you "
"`have Docker installed <https://docs.docker.com/install/>`_, know "
":doc:`which Docker image <using/selecting>` you want to use, and want to "
"launch a single Jupyter Notebook server in a container."
msgstr ""
# 051ed23ef62e41058a7c889604f96035
#: ../../index.rst:15 1214b6056fe449b2a8ce59a5cda97355
#: ../../index.rst:15 fd26a0de5e8e486881add75154edcd37
msgid ""
"The other pages in this documentation describe additional uses and "
"features in detail."
msgstr ""
# e91f3b62a1b54166b966be6d7a4f061e
#: ../../index.rst:17 7b198609a6214812b7922cb12e057279
#: ../../index.rst:17 dbed24fb6a1a4be590b849e0e347154e
msgid ""
"**Example 1:** This command pulls the ``jupyter/scipy-notebook`` image "
"tagged ``17aba6048f44`` from Docker Hub if it is not already present on "
"tagged ``33add21fab64`` from Docker Hub if it is not already present on "
"the local host. It then starts a container running a Jupyter Notebook "
"server and exposes the server on host port 8888. The server logs appear "
"in the terminal. Visiting ``http://<hostname>:8888/?token=<token>`` in a "
@@ -116,26 +114,25 @@ msgid ""
"the notebook server exits.::"
msgstr ""
# e04140e6cd8442f7a6f347d88224f591
#: ../../index.rst:21 1dead775c2d544abb3362633fdb93523
#: ../../index.rst:21 0de344bca072499584a902837907650f
msgid ""
"**Example 2:** This command performs the same operations as **Example "
"1**, but it exposes the server on host port 10000 instead of port 8888. "
"Visiting ``http://<hostname>:10000/?token=<token>`` in a browser loads "
"JupyterLab, where ``hostname`` is the name of the computer running docker"
" and ``token`` is the secret token printed in the console.::"
"Jupyter Notebook server, where ``hostname`` is the name of the computer "
"running docker and ``token`` is the secret token printed in the "
"console.::"
msgstr ""
# 1c3229680cf44a5bb2d8450602bfcf7d
#: ../../index.rst:25 8e75264b16a14d9bb4a1b4a9dee7b0b5
#: ../../index.rst:25 eb2311c06fd74b2891520ba11269813d
msgid ""
"**Example 3:** This command pulls the ``jupyter/datascience-notebook`` "
"image tagged ``9b06df75e445`` from Docker Hub if it is not already "
"image tagged ``33add21fab64`` from Docker Hub if it is not already "
"present on the local host. It then starts an *ephemeral* container "
"running a Jupyter Notebook server and exposes the server on host port "
"10000. The command mounts the current working directory on the host as "
"``/home/jovyan/work`` in the container. The server logs appear in the "
"terminal. Visiting ``http://<hostname>:10000/?token=<token>`` in a "
"terminal. Visiting ``http://<hostname>:10000/lab?token=<token>`` in a "
"browser loads JupyterLab, where ``hostname`` is the name of the computer "
"running docker and ``token`` is the secret token printed in the console. "
"Docker destroys the container after notebook server exit, but any files "
@@ -143,10 +140,110 @@ msgid ""
msgstr ""
# 3ac1a41d185844b1b43315a4cc74efc8
#: ../../index.rst:30 e275f6561a2b408fa1202ebb59dfcd14
#: ../../index.rst:30 2783c472d597497bad6ceaec39e447f0
msgid "Table of Contents"
msgstr ""
#~ msgid "Jupyter Docker Stacks Issue Tracker"
#~ msgstr ""
# e91f3b62a1b54166b966be6d7a4f061e
#~ msgid ""
#~ "**Example 1:** This command pulls the"
#~ " ``jupyter/scipy-notebook`` image tagged "
#~ "``17aba6048f44`` from Docker Hub if it"
#~ " is not already present on the "
#~ "local host. It then starts a "
#~ "container running a Jupyter Notebook "
#~ "server and exposes the server on "
#~ "host port 8888. The server logs "
#~ "appear in the terminal. Visiting "
#~ "``http://<hostname>:8888/?token=<token>`` in a "
#~ "browser loads the Jupyter Notebook "
#~ "dashboard page, where ``hostname`` is "
#~ "the name of the computer running "
#~ "docker and ``token`` is the secret "
#~ "token printed in the console. The "
#~ "container remains intact for restart "
#~ "after the notebook server exits.::"
#~ msgstr ""
# 1c3229680cf44a5bb2d8450602bfcf7d
#~ msgid ""
#~ "**Example 3:** This command pulls the"
#~ " ``jupyter/datascience-notebook`` image tagged"
#~ " ``9b06df75e445`` from Docker Hub if "
#~ "it is not already present on the"
#~ " local host. It then starts an "
#~ "*ephemeral* container running a Jupyter "
#~ "Notebook server and exposes the server"
#~ " on host port 10000. The command "
#~ "mounts the current working directory on"
#~ " the host as ``/home/jovyan/work`` in "
#~ "the container. The server logs appear"
#~ " in the terminal. Visiting "
#~ "``http://<hostname>:10000/?token=<token>`` in a "
#~ "browser loads JupyterLab, where ``hostname``"
#~ " is the name of the computer "
#~ "running docker and ``token`` is the "
#~ "secret token printed in the console. "
#~ "Docker destroys the container after "
#~ "notebook server exit, but any files "
#~ "written to ``~/work`` in the container"
#~ " remain intact on the host.::"
#~ msgstr ""
# d4c0e237dbe74e0d9afbf2b2f0e219c8
#~ msgid ""
#~ "You can try a `recent build of "
#~ "the jupyter/base-notebook image on "
#~ "mybinder.org <https://mybinder.org/v2/gh/jupyter/docker-"
#~ "stacks/master?filepath=README.ipynb>`_ by simply "
#~ "clicking the preceding link. Otherwise, "
#~ "the two examples below may help "
#~ "you get started if you `have "
#~ "Docker installed <https://docs.docker.com/install/>`_, "
#~ "know :doc:`which Docker image "
#~ "<using/selecting>` you want to use, and"
#~ " want to launch a single Jupyter "
#~ "Notebook server in a container."
#~ msgstr ""
# e04140e6cd8442f7a6f347d88224f591
#~ msgid ""
#~ "**Example 2:** This command performs the"
#~ " same operations as **Example 1**, "
#~ "but it exposes the server on host"
#~ " port 10000 instead of port 8888. "
#~ "Visiting ``http://<hostname>:10000/?token=<token>`` in "
#~ "a browser loads JupyterLab, where "
#~ "``hostname`` is the name of the "
#~ "computer running docker and ``token`` is"
#~ " the secret token printed in the "
#~ "console.::"
#~ msgstr ""
#~ msgid ""
#~ "**Example 3:** This command pulls the"
#~ " ``jupyter/datascience-notebook`` image tagged"
#~ " ``33add21fab64`` from Docker Hub if "
#~ "it is not already present on the"
#~ " local host. It then starts an "
#~ "*ephemeral* container running a Jupyter "
#~ "Notebook server and exposes the server"
#~ " on host port 10000. The command "
#~ "mounts the current working directory on"
#~ " the host as ``/home/jovyan/work`` in "
#~ "the container. The server logs appear"
#~ " in the terminal. Visiting "
#~ "``http://<hostname>:10000/?token=<token>`` in a "
#~ "browser loads JupyterLab, where ``hostname``"
#~ " is the name of the computer "
#~ "running docker and ``token`` is the "
#~ "secret token printed in the console. "
#~ "Docker destroys the container after "
#~ "notebook server exit, but any files "
#~ "written to ``~/work`` in the container"
#~ " remain intact on the host.::"
#~ msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -30,7 +30,7 @@ Create a new Dockerfile like the one shown below.
```dockerfile
# Start from a core stack version
FROM jupyter/datascience-notebook:9f9e5ca8fe5a
FROM jupyter/datascience-notebook:33add21fab64
# Install in the default python3 environment
RUN pip install 'ggplot==0.6.8'
```
@@ -46,7 +46,7 @@ packages desired. Next, create a new Dockerfile like the one shown below.
```dockerfile
# Start from a core stack version
FROM jupyter/datascience-notebook:9f9e5ca8fe5a
FROM jupyter/datascience-notebook:33add21fab64
# Install from requirements.txt file
COPY --chown=${NB_UID}:${NB_GID} requirements.txt /tmp/
RUN pip install --requirement /tmp/requirements.txt && \
@@ -58,7 +58,7 @@ For conda, the Dockerfile is similar:
```dockerfile
# Start from a core stack version
FROM jupyter/datascience-notebook:9f9e5ca8fe5a
FROM jupyter/datascience-notebook:33add21fab64
# Install from requirements.txt file
COPY --chown=${NB_UID}:${NB_GID} requirements.txt /tmp/
RUN conda install --yes --file /tmp/requirements.txt && \
@@ -66,8 +66,7 @@ RUN conda install --yes --file /tmp/requirements.txt && \
fix-permissions /home/$NB_USER
```
Ref:
[docker-stacks/commit/79169618d571506304934a7b29039085e77db78c](https://github.com/jupyter/docker-stacks/commit/79169618d571506304934a7b29039085e77db78c#commitcomment-15960081)
Ref: [docker-stacks/commit/79169618d571506304934a7b29039085e77db78c](https://github.com/jupyter/docker-stacks/commit/79169618d571506304934a7b29039085e77db78c#commitcomment-15960081)
## Add a Python 2.x environment
@@ -95,8 +94,7 @@ $CONDA_DIR/envs/python2/bin/kernda -o -y /usr/local/share/jupyter/kernels/python
USER $NB_USER
```
Ref:
[https://github.com/jupyter/docker-stacks/issues/440](https://github.com/jupyter/docker-stacks/issues/440)
Ref: <https://github.com/jupyter/docker-stacks/issues/440>
## Add a Python 3.x environment
@@ -142,10 +140,10 @@ ENV PATH $CONDA_DIR/envs/${conda_env}/bin:$PATH
## Run JupyterLab
JupyterLab is preinstalled as a notebook extension starting in tag
[c33a7dc0eece](https://github.com/jupyter/docker-stacks/wiki/Docker-build-history).
[c33a7dc0eece](https://github.com/jupyter/docker-stacks/pull/355).
Run jupyterlab using a command such as
`docker run -it --rm -p 8888:8888 jupyter/datascience-notebook start.sh jupyter lab`
`docker run -it --rm -p 8888:8888 -e JUPYTER_ENABLE_LAB=yes jupyter/datascience-notebook`
## Dask JupyterLab Extension
@@ -177,17 +175,15 @@ Once built, run using the command:
docker run -it --rm -p 8888:8888 -p 8787:8787 jupyter/scipy-dasklabextension:latest
```
Ref:
[https://github.com/jupyter/docker-stacks/issues/999](https://github.com/jupyter/docker-stacks/issues/999)
Ref: <https://github.com/jupyter/docker-stacks/issues/999>
## Let's Encrypt a Notebook server
See the README for the simple automation here
[https://github.com/jupyter/docker-stacks/tree/master/examples/make-deploy](https://github.com/jupyter/docker-stacks/tree/master/examples/make-deploy)
<https://github.com/jupyter/docker-stacks/tree/master/examples/make-deploy>
which includes steps for requesting and renewing a Let's Encrypt certificate.
Ref:
[https://github.com/jupyter/docker-stacks/issues/78](https://github.com/jupyter/docker-stacks/issues/78)
Ref: <https://github.com/jupyter/docker-stacks/issues/78>
## Slideshows with Jupyter and RISE
@@ -237,8 +233,7 @@ permission errors or connection errors when you create a notebook, be sure that
UID of the `jovyan` user on container startup using the `-e NB_UID` option described in the
[Common Features, Docker Options section](../using/common.html#Docker-Options)
Ref:
[https://github.com/jupyter/docker-stacks/issues/199](https://github.com/jupyter/docker-stacks/issues/199)
Ref: <https://github.com/jupyter/docker-stacks/issues/199>
## Manpage installation
@@ -312,14 +307,13 @@ To use a specific version of JupyterHub, the version of `jupyterhub` in your ima
version in the Hub itself.
```dockerfile
FROM jupyter/base-notebook:5ded1de07260
FROM jupyter/base-notebook:33add21fab64
RUN pip install jupyterhub==0.8.0b1
```
Credit: [MinRK](https://github.com/jupyter/docker-stacks/issues/423#issuecomment-322767742)
Ref:
[https://github.com/jupyter/docker-stacks/issues/177](https://github.com/jupyter/docker-stacks/issues/177)
Ref: <https://github.com/jupyter/docker-stacks/issues/177>
## Spark
@@ -369,8 +363,7 @@ hadoopConf.set("fs.s3.awsSecretAccessKey", mySecretKey)
df = sqlContext.read.parquet("s3://myBucket/myKey")
```
Ref:
[https://github.com/jupyter/docker-stacks/issues/127](https://github.com/jupyter/docker-stacks/issues/127)
Ref: <https://github.com/jupyter/docker-stacks/issues/127>
### Using Local Spark JARs
@@ -388,8 +381,7 @@ directKafkaStream.pprint()
ssc.start()
```
Ref:
[https://github.com/jupyter/docker-stacks/issues/154](https://github.com/jupyter/docker-stacks/issues/154)
Ref: <https://github.com/jupyter/docker-stacks/issues/154>
### Using spark-packages.org
@@ -398,8 +390,7 @@ If you'd like to use packages from [spark-packages.org](https://spark-packages.o
for an example of how to specify the package identifier in the environment before creating a
SparkContext.
Ref:
[https://github.com/jupyter/docker-stacks/issues/43](https://github.com/jupyter/docker-stacks/issues/43)
Ref: <https://github.com/jupyter/docker-stacks/issues/43>
### Use jupyter/all-spark-notebooks with an existing Spark/YARN cluster
@@ -478,13 +469,13 @@ convenient to launch the server without a password or token. In this case, you s
For jupyterlab:
```bash
docker run jupyter/base-notebook:6d2a05346196 start.sh jupyter lab --LabApp.token=''
docker run jupyter/base-notebook:33add21fab64 start.sh jupyter lab --LabApp.token=''
```
For jupyter classic:
```bash
docker run jupyter/base-notebook:6d2a05346196 start.sh jupyter notebook --NotebookApp.token=''
docker run jupyter/base-notebook:33add21fab64 start.sh jupyter notebook --NotebookApp.token=''
```
## Enable nbextension spellchecker for markdown (or any other nbextension)
@@ -503,8 +494,7 @@ RUN pip install jupyter_contrib_nbextensions && \
jupyter nbextension enable spellchecker/main --user
```
Ref:
[https://github.com/jupyter/docker-stacks/issues/675](https://github.com/jupyter/docker-stacks/issues/675)
Ref: <https://github.com/jupyter/docker-stacks/issues/675>
## Enable auto-sklearn notebooks

View File

@@ -11,10 +11,10 @@ This section provides details about the second.
You can launch a local Docker container from the Jupyter Docker Stacks using the [Docker command line interface](https://docs.docker.com/engine/reference/commandline/cli/). There are numerous ways to configure containers using the CLI. The following are some common patterns.
**Example 1** This command pulls the `jupyter/scipy-notebook` image tagged `2c80cf3537ca` from Docker Hub if it is not already present on the local host. It then starts a container running a Jupyter Notebook server and exposes the server on host port 8888. The server logs appear in the terminal and include a URL to the notebook server.
**Example 1** This command pulls the `jupyter/scipy-notebook` image tagged `33add21fab64` from Docker Hub if it is not already present on the local host. It then starts a container running a Jupyter Notebook server and exposes the server on host port 8888. The server logs appear in the terminal and include a URL to the notebook server.
```bash
$ docker run -p 8888:8888 jupyter/scipy-notebook:2c80cf3537ca
$ docker run -p 8888:8888 jupyter/scipy-notebook:33add21fab64
Executing the command: jupyter notebook
[I 15:33:00.567 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
@@ -52,10 +52,10 @@ $ docker rm d67fe77f1a84
d67fe77f1a84
```
**Example 2** This command pulls the `jupyter/r-notebook` image tagged `e5c5a7d3e52d` from Docker Hub if it is not already present on the local host. It then starts a container running a Jupyter Notebook server and exposes the server on host port 10000. The server logs appear in the terminal and include a URL to the notebook server, but with the internal container port (8888) instead of the the correct host port (10000).
**Example 2** This command pulls the `jupyter/r-notebook` image tagged `33add21fab64` from Docker Hub if it is not already present on the local host. It then starts a container running a Jupyter Notebook server and exposes the server on host port 10000. The server logs appear in the terminal and include a URL to the notebook server, but with the internal container port (8888) instead of the the correct host port (10000).
```bash
$ docker run --rm -p 10000:8888 -v "$PWD":/home/jovyan/work jupyter/r-notebook:e5c5a7d3e52d
$ docker run --rm -p 10000:8888 -v "$PWD":/home/jovyan/work jupyter/r-notebook:33add21fab64
Executing the command: jupyter notebook
[I 19:31:09.573 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret

View File

@@ -31,6 +31,7 @@ and versioning strategy.
- [Miniforge](https://github.com/conda-forge/miniforge) Python 3.x in `/opt/conda` with two package managers
- [conda](https://github.com/conda/conda): "cross-platform, language-agnostic binary package manager".
- [mamba](https://github.com/mamba-org/mamba): "reimplementation of the conda package manager in C++".
- `notebook`, `jupyterhub` and `jupyterlab` packages
- No preinstalled scientific computing packages
- Unprivileged user `jovyan` (`uid=1000`, configurable, see options) in group `users` (`gid=100`)
with ownership over the `/home/jovyan` and `/opt/conda` paths
@@ -52,7 +53,7 @@ and versioning strategy.
- [TeX Live](https://www.tug.org/texlive/) for notebook document conversion
- [git](https://git-scm.com/),
[vi](https://www.vim.org) (actually `vim-tiny`),
[nano](https://www.nano-editor.org/) (actually `nano-tiny`), tzdata, and unzip
[nano](https://www.nano-editor.org/) (actually `nano-tiny`), `tzdata`, and `unzip`
### jupyter/r-notebook
@@ -65,17 +66,25 @@ and versioning strategy.
- Everything in `jupyter/minimal-notebook` and its ancestor images
- The [R](https://www.r-project.org/) interpreter and base environment
- [IRKernel](https://irkernel.github.io/) to support R code in Jupyter notebooks
- [tidyverse](https://www.tidyverse.org/) packages from
[conda-forge](https://conda-forge.org/feedstock-outputs/index.html)
- [devtools](https://cran.r-project.org/web/packages/devtools/index.html),
[shiny](https://shiny.rstudio.com/), [rmarkdown](https://rmarkdown.rstudio.com),
[forecast](https://cran.r-project.org/web/packages/forecast/forecast.pdf),
[rsqlite](https://cran.r-project.org/web/packages/RSQLite/index.html),
- [tidyverse](https://www.tidyverse.org/)
packages from [conda-forge](https://conda-forge.org/feedstock-outputs/index.html)
- [caret](https://topepo.github.io/caret/index.html),
[crayon](https://cran.r-project.org/web/packages/crayon/index.html),
[devtools](https://cran.r-project.org/web/packages/devtools/index.html),
[forecast](https://cran.r-project.org/web/packages/forecast/index.html),
[hexbin](https://cran.r-project.org/web/packages/hexbin/index.html),
[htmltools](https://cran.r-project.org/web/packages/htmltools/index.html),
[htmlwidgets](https://www.htmlwidgets.org),
[nycflights13](https://cran.r-project.org/web/packages/nycflights13/index.html),
[caret](https://topepo.github.io/caret/index.html), [tidymodels](https://www.tidymodels.org/),
[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.org/feedstock-outputs/index.html)
[randomforest](https://cran.r-project.org/web/packages/randomForest/index.html),
[rcurl](https://cran.r-project.org/web/packages/RCurl/index.html),
[rmarkdown](https://rmarkdown.rstudio.com),
[rodbc](https://cran.r-project.org/web/packages/RODBC/index.html),
[rsqlite](https://cran.r-project.org/web/packages/RSQLite/index.html),
[shiny](https://shiny.rstudio.com/),
[tidymodels](https://www.tidymodels.org/),
[unixodbc](http://www.unixodbc.org)
packages from [conda-forge](https://conda-forge.org/feedstock-outputs/index.html)
### jupyter/scipy-notebook
@@ -86,25 +95,38 @@ and versioning strategy.
`jupyter/scipy-notebook` includes popular packages from the scientific Python ecosystem.
- Everything in `jupyter/minimal-notebook` and its ancestor images
- [dask](https://dask.org/), [pandas](https://pandas.pydata.org/),
[numexpr](https://github.com/pydata/numexpr), [matplotlib](https://matplotlib.org/),
[scipy](https://www.scipy.org/), [seaborn](https://seaborn.pydata.org/),
[scikit-learn](https://scikit-learn.org/stable/), [scikit-image](https://scikit-image.org),
[sympy](https://www.sympy.org/en/index.html), [cython](https://cython.org),
[patsy](https://patsy.readthedocs.io/en/latest/),
[statsmodel](https://www.statsmodels.org/stable/index.html),
- [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/),
[bokeh](https://docs.bokeh.org/en/latest/),
[bottleneck](https://bottleneck.readthedocs.io/en/latest/),
[cloudpickle](https://github.com/cloudpipe/cloudpickle),
[dill](https://pypi.org/project/dill/), [numba](https://numba.pydata.org/),
[bokeh](https://docs.bokeh.org/en/latest/), [sqlalchemy](https://www.sqlalchemy.org/),
[hdf5](https://www.h5py.org), [altair](https://altair-viz.github.io),
[beautifulsoup](https://www.crummy.com/software/BeautifulSoup/),
[conda-forge::blas=\*=openblas](https://www.openblas.net),
[cython](https://cython.org),
[dask](https://dask.org/),
[dill](https://pypi.org/project/dill/),
[h5py](https://www.h5py.org),
[matplotlib-base](https://matplotlib.org/),
[numba](https://numba.pydata.org/),
[numexpr](https://github.com/pydata/numexpr),
[pandas](https://pandas.pydata.org/),
[patsy](https://patsy.readthedocs.io/en/latest/),
[protobuf](https://developers.google.com/protocol-buffers/docs/pythontutorial),
[xlrd](https://www.python-excel.org), [bottleneck](https://bottleneck.readthedocs.io/en/latest/),
and [pytables](https://www.pytables.org/) packages
- [ipywidgets](https://ipywidgets.readthedocs.io/en/stable/) and
[ipympl](https://github.com/matplotlib/ipympl) for interactive visualizations and
plots in Python notebooks
- [Facets](https://github.com/PAIR-code/facets) for visualizing machine learning datasets
[pytables](https://www.pytables.org/),
[scikit-image](https://scikit-image.org),
[scikit-learn](https://scikit-learn.org/stable/),
[scipy](https://www.scipy.org/),
[seaborn](https://seaborn.pydata.org/),
[sqlalchemy](https://www.sqlalchemy.org/),
[statsmodel](https://www.statsmodels.org/stable/index.html),
[sympy](https://www.sympy.org/en/index.html),
[vincent](https://vincent.readthedocs.io/en/latest/),
[widgetsnbextension](https://ipywidgets.readthedocs.io/en/latest/user_install.html#installing-in-classic-jupyter-notebook),
[xlrd](https://www.python-excel.org)
packages
- [ipympl](https://github.com/matplotlib/ipympl) and
[ipywidgets](https://ipywidgets.readthedocs.io/en/stable/)
for interactive visualizations and plots in Python notebooks
- [Facets](https://github.com/PAIR-code/facets)
for visualizing machine learning datasets
### jupyter/tensorflow-notebook
@@ -115,8 +137,7 @@ and versioning strategy.
`jupyter/tensorflow-notebook` includes popular Python deep learning libraries.
- Everything in `jupyter/scipy-notebook` and its ancestor images
- [tensorflow](https://www.tensorflow.org/) and [keras](https://keras.io/) machine learning
libraries
- [tensorflow](https://www.tensorflow.org/) machine learning library
### jupyter/datascience-notebook
@@ -129,10 +150,13 @@ communities.
- Everything in the `jupyter/scipy-notebook` and `jupyter/r-notebook` images, and their ancestor
images
- [rpy2](https://rpy2.github.io/doc/latest/html/index.html) package
- The [Julia](https://julialang.org/) compiler and base environment
- [IJulia](https://github.com/JuliaLang/IJulia.jl) to support Julia code in Jupyter notebooks
- [HDF5](https://github.com/JuliaIO/HDF5.jl), [Gadfly](https://gadflyjl.org/stable/), and
[RDatasets](https://github.com/JuliaStats/RDatasets.jl) packages
- [HDF5](https://github.com/JuliaIO/HDF5.jl),
[Gadfly](https://gadflyjl.org/stable/),
[RDatasets](https://github.com/JuliaStats/RDatasets.jl)
packages
### jupyter/pyspark-notebook
@@ -144,6 +168,7 @@ communities.
- Everything in `jupyter/scipy-notebook` and its ancestor images
- [Apache Spark](https://spark.apache.org/) with Hadoop binaries
- [pyarrow](https://arrow.apache.org/docs/python/) library
### jupyter/all-spark-notebook
@@ -155,11 +180,11 @@ communities.
- Everything in `jupyter/pyspark-notebook` and its ancestor images
- [IRKernel](https://irkernel.github.io/) to support R code in Jupyter notebooks
- [Apache Toree](https://toree.apache.org/) and
[spylon-kernel](https://github.com/vericast/spylon-kernel) to support Scala code in Jupyter
notebooks
- [ggplot2](https://ggplot2.tidyverse.org), [sparklyr](https://spark.rstudio.com), and
[rcurl](https://cran.r-project.org/web/packages/RCurl/index.html) packages
- [rcurl](https://cran.r-project.org/web/packages/RCurl/index.html),
[sparklyr](https://spark.rstudio.com),
[ggplot2](https://ggplot2.tidyverse.org)
packages
- [spylon-kernel](https://github.com/vericast/spylon-kernel) to support Scala code in Jupyter notebooks
### Image Relationships
@@ -173,7 +198,7 @@ diagram](../images/inherit.svg)](http://interactive.blockdiag.com/?compression=d
### Builds
Pull requests to the `jupyter/docker-stacks` repository trigger builds of all images on GitHub
Actions. These images are for testing purposes only and are not saved for use. When pull requests
Actions. These images are for testing purposes only and are not saved for further use. When pull requests
merge to master, all images rebuild on Docker Hub and become available to `docker pull` from
Docker Hub.
@@ -184,15 +209,13 @@ The `latest` tag in each Docker Hub repository tracks the master branch `HEAD` r
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
[https://github.com/jupyter/docker-stacks/tree/7c45ec67c8e7](https://github.com/jupyter/docker-stacks/tree/7c45ec67c8e7)).
for that commit to review the definition of the image (e.g., images with tag `33add21fab64` were built
from <https://github.com/jupyter/docker-stacks/tree/33add21fab64>.
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 library in a
notebook).
(e.g. `FROM jupyter/scipy-notebook:33add21fab64`, `docker run -it --rm jupyter/scipy-notebook:33add21fab64`).
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).
## Community Stacks

View File

@@ -19,7 +19,7 @@ You can build a `pyspark-notebook` image (and also the downstream `all-spark-not
- Spark can run with different OpenJDK versions.
- `openjdk_version`: The version of (JRE headless) the OpenJDK distribution (`11`), see [Ubuntu packages](https://packages.ubuntu.com/search?keywords=openjdk).
For example here is how to build a `pyspark-notebook` image with Spark `2.4.6`, Hadoop `2.7` and OpenJDK `8`.
For example here is how to build a `pyspark-notebook` image with Spark `2.4.7`, Hadoop `2.7` and OpenJDK `8`.
```bash
# From the root of the project
@@ -141,7 +141,7 @@ Connection to Spark Cluster on **[Standalone Mode](https://spark.apache.org/docs
##### Standalone Mode in Python
The **same Python version** need to be used on the notebook (where the driver is located) and on the Spark workers.
The **same Python version** needs to be used on the notebook (where the driver is located) and on the Spark workers.
The python version used at driver and worker side can be adjusted by setting the environment variables `PYSPARK_PYTHON` and / or `PYSPARK_DRIVER_PYTHON`, see [Spark Configuration][spark-conf] for more information.
```python

View File

@@ -41,7 +41,7 @@ notebook/down.sh
You can customize the docker-stack notebook image to deploy by modifying the `notebook/Dockerfile`. For example, you can build and deploy a `jupyter/all-spark-notebook` by modifying the Dockerfile like so:
```dockerfile
FROM jupyter/all-spark-notebook:55d5ca6be183
FROM jupyter/all-spark-notebook:33add21fab64
...
```

View File

@@ -2,7 +2,7 @@
# Distributed under the terms of the Modified BSD License.
# Pick your favorite docker-stacks image
FROM jupyter/minimal-notebook:55d5ca6be183
FROM jupyter/minimal-notebook:33add21fab64
USER root

View File

@@ -2,7 +2,7 @@
# Distributed under the terms of the Modified BSD License.
# Pick your favorite docker-stacks image
FROM jupyter/minimal-notebook:2d125a7161b5
FROM jupyter/minimal-notebook:33add21fab64
USER root

View File

@@ -23,7 +23,7 @@ RUN ln -s /bin/tar /bin/gtar
USER $NB_UID
# R packages
# R packages including IRKernel which gets installed globally.
RUN conda install --quiet --yes \
'r-base=4.0.5' \
'r-caret=6.*' \
@@ -41,9 +41,9 @@ RUN conda install --quiet --yes \
'r-rodbc=1.3*' \
'r-rsqlite=2.2*' \
'r-shiny=1.6*' \
'r-tidymodels=0.1*' \
'r-tidyverse=1.3*' \
'unixodbc=2.3.*' \
'r-tidymodels=0.1*' && \
'unixodbc=2.3.*' && \
conda clean --all -f -y && \
fix-permissions "${CONDA_DIR}" && \
fix-permissions "/home/${NB_USER}"

View File

@@ -18,16 +18,16 @@ USER $NB_UID
RUN conda install --quiet --yes \
'altair=4.1.*' \
'beautifulsoup4=4.9.*' \
'conda-forge::blas=*=openblas' \
'bokeh=2.3.*' \
'bottleneck=1.3.*' \
'cloudpickle=1.6.*' \
'conda-forge::blas=*=openblas' \
'cython=0.29.*' \
'dask=2021.5.*' \
'dill=0.3.*' \
'h5py=3.2.*' \
'ipywidgets=7.6.*' \
'ipympl=0.7.*'\
'ipywidgets=7.6.*' \
'matplotlib-base=3.4.*' \
'numba=0.53.*' \
'numexpr=2.7.*' \