Merge branch 'master' into asalikhov/ubuntu_focal

This commit is contained in:
Peter Parente
2020-06-13 13:26:20 -04:00
committed by GitHub
13 changed files with 434 additions and 167 deletions

3
.hadolint.yaml Normal file
View File

@@ -0,0 +1,3 @@
ignored:
- DL3006
- DL3008

View File

@@ -12,10 +12,11 @@ jobs:
install: install:
- pip install --upgrade pip - pip install --upgrade pip
- make dev-env - make dev-env
- make lint-install
script: script:
- set -e - set -e
- if [ $(make n-docs-diff) -ne 0 ]; then make docs; fi; - if [ $(make n-docs-diff) -ne 0 ]; then make docs; fi;
- if [ $(make n-other-diff) -ne 0 ]; then make build-test-all DARGS="--build-arg TEST_ONLY_BUILD=1"; fi; - if [ $(make n-other-diff) -ne 0 ]; then make lint-build-test-all DARGS="--build-arg TEST_ONLY_BUILD=1"; fi;
- stage: push-tx - stage: push-tx
install: install:
- pip install --upgrade pip - pip install --upgrade pip
@@ -26,10 +27,11 @@ jobs:
install: install:
- pip install --upgrade pip - pip install --upgrade pip
- make dev-env - make dev-env
- make lint-install
script: script:
- set -e - set -e
- make docs - make docs
- make build-test-all DARGS="--build-arg TEST_ONLY_BUILD=1" - make lint-build-test-all DARGS="--build-arg TEST_ONLY_BUILD=1"
stages: stages:
- name: diff-test - name: diff-test

View File

@@ -24,6 +24,9 @@ endif
ALL_IMAGES:=$(ALL_STACKS) ALL_IMAGES:=$(ALL_STACKS)
# Linter
HADOLINT="${HOME}/hadolint"
help: help:
# http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html # http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
@echo "jupyter/docker-stacks" @echo "jupyter/docker-stacks"
@@ -73,6 +76,23 @@ dev/%: ## run a foreground container for a stack
dev-env: ## install libraries required to build docs and run tests dev-env: ## install libraries required to build docs and run tests
pip install -r requirements-dev.txt pip install -r requirements-dev.txt
lint/%: ARGS?=
lint/%: ## lint the dockerfile(s) for a stack
@echo "Linting Dockerfiles in $(notdir $@)..."
@git ls-files --exclude='Dockerfile*' --ignored $(notdir $@) | grep -v ppc64 | xargs -L 1 $(HADOLINT) $(ARGS)
@echo "Linting done!"
lint-all: $(foreach I,$(ALL_IMAGES),lint/$(I) ) ## lint all stacks
lint-build-test-all: $(foreach I,$(ALL_IMAGES),lint/$(I) arch_patch/$(I) build/$(I) test/$(I) ) ## lint, build and test all stacks
lint-install: ## install hadolint
@echo "Installing hadolint at $(HADOLINT) ..."
@curl -sL -o $(HADOLINT) "https://github.com/hadolint/hadolint/releases/download/v1.17.6/hadolint-$(shell uname -s)-$(shell uname -m)"
@chmod 700 $(HADOLINT)
@echo "Installation done!"
@$(HADOLINT) --version
img-clean: img-rm-dang img-rm ## clean dangling and jupyter images img-clean: img-rm-dang img-rm ## clean dangling and jupyter images
img-list: ## list jupyter images img-list: ## list jupyter images

View File

@@ -30,22 +30,23 @@ RUN conda install --quiet --yes \
'r-sparklyr=1.2*' \ 'r-sparklyr=1.2*' \
&& \ && \
conda clean --all -f -y && \ conda clean --all -f -y && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"
# Apache Toree kernel # Apache Toree kernel
# hadolint ignore=DL3013
RUN pip install --no-cache-dir \ RUN pip install --no-cache-dir \
https://dist.apache.org/repos/dist/release/incubator/toree/0.3.0-incubating/toree-pip/toree-0.3.0.tar.gz \ https://dist.apache.org/repos/dist/release/incubator/toree/0.3.0-incubating/toree-pip/toree-0.3.0.tar.gz \
&& \ && \
jupyter toree install --sys-prefix && \ jupyter toree install --sys-prefix && \
rm -rf /home/$NB_USER/.local && \ rm -rf "/home/${NB_USER}/.local" && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"
# Spylon-kernel # Spylon-kernel
RUN conda install --quiet --yes 'spylon-kernel=0.4*' && \ RUN conda install --quiet --yes 'spylon-kernel=0.4*' && \
conda clean --all -f -y && \ conda clean --all -f -y && \
python -m spylon_kernel install --sys-prefix && \ python -m spylon_kernel install --sys-prefix && \
rm -rf /home/$NB_USER/.local && \ rm -rf "/home/${NB_USER}/.local" && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"

View File

@@ -13,6 +13,9 @@ ARG NB_USER="jovyan"
ARG NB_UID="1000" ARG NB_UID="1000"
ARG NB_GID="100" ARG NB_GID="100"
# Fix DL4006
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
USER root USER root
# Install all OS dependencies for notebook server that starts but lacks all # Install all OS dependencies for notebook server that starts but lacks all
@@ -76,8 +79,8 @@ ENV MINICONDA_VERSION=4.8.2 \
MINICONDA_MD5=87e77f097f6ebb5127c77662dfc3165e \ MINICONDA_MD5=87e77f097f6ebb5127c77662dfc3165e \
CONDA_VERSION=4.8.2 CONDA_VERSION=4.8.2
RUN cd /tmp && \ WORKDIR /tmp
wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \ RUN wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \
echo "${MINICONDA_MD5} *Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh" | md5sum -c - && \ echo "${MINICONDA_MD5} *Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh" | md5sum -c - && \
/bin/bash Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p $CONDA_DIR && \ /bin/bash Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p $CONDA_DIR && \
rm Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \ rm Miniconda3-py37_${MINICONDA_VERSION}-Linux-x86_64.sh && \
@@ -137,3 +140,5 @@ RUN fix-permissions /etc/jupyter/
# Switch back to jovyan to avoid accidental container runs as root # Switch back to jovyan to avoid accidental container runs as root
USER $NB_UID USER $NB_UID
WORKDIR $HOME

View File

@@ -9,6 +9,9 @@ LABEL maintainer="Jupyter Project <jupyter@googlegroups.com>"
# be skipped to shorten build time. # be skipped to shorten build time.
ARG TEST_ONLY_BUILD ARG TEST_ONLY_BUILD
# Fix DL4006
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
USER root USER root
# R pre-requisites # R pre-requisites
@@ -25,21 +28,23 @@ ENV JULIA_DEPOT_PATH=/opt/julia
ENV JULIA_PKGDIR=/opt/julia ENV JULIA_PKGDIR=/opt/julia
ENV JULIA_VERSION=1.4.1 ENV JULIA_VERSION=1.4.1
RUN mkdir /opt/julia-${JULIA_VERSION} && \ WORKDIR /tmp
cd /tmp && \
wget -q https://julialang-s3.julialang.org/bin/linux/x64/`echo ${JULIA_VERSION} | cut -d. -f 1,2`/julia-${JULIA_VERSION}-linux-x86_64.tar.gz && \ # hadolint ignore=SC2046
RUN mkdir "/opt/julia-${JULIA_VERSION}" && \
wget -q https://julialang-s3.julialang.org/bin/linux/x64/$(echo "${JULIA_VERSION}" | cut -d. -f 1,2)"/julia-${JULIA_VERSION}-linux-x86_64.tar.gz" && \
echo "fd6d8cadaed678174c3caefb92207a3b0e8da9f926af6703fb4d1e4e4f50610a *julia-${JULIA_VERSION}-linux-x86_64.tar.gz" | sha256sum -c - && \ echo "fd6d8cadaed678174c3caefb92207a3b0e8da9f926af6703fb4d1e4e4f50610a *julia-${JULIA_VERSION}-linux-x86_64.tar.gz" | sha256sum -c - && \
tar xzf julia-${JULIA_VERSION}-linux-x86_64.tar.gz -C /opt/julia-${JULIA_VERSION} --strip-components=1 && \ tar xzf "julia-${JULIA_VERSION}-linux-x86_64.tar.gz" -C "/opt/julia-${JULIA_VERSION}" --strip-components=1 && \
rm /tmp/julia-${JULIA_VERSION}-linux-x86_64.tar.gz rm "/tmp/julia-${JULIA_VERSION}-linux-x86_64.tar.gz"
RUN ln -fs /opt/julia-*/bin/julia /usr/local/bin/julia RUN ln -fs /opt/julia-*/bin/julia /usr/local/bin/julia
# Show Julia where conda libraries are \ # Show Julia where conda libraries are \
RUN mkdir /etc/julia && \ RUN mkdir /etc/julia && \
echo "push!(Libdl.DL_LOAD_PATH, \"$CONDA_DIR/lib\")" >> /etc/julia/juliarc.jl && \ echo "push!(Libdl.DL_LOAD_PATH, \"$CONDA_DIR/lib\")" >> /etc/julia/juliarc.jl && \
# Create JULIA_PKGDIR \ # Create JULIA_PKGDIR \
mkdir $JULIA_PKGDIR && \ mkdir "${JULIA_PKGDIR}" && \
chown $NB_USER $JULIA_PKGDIR && \ chown "${NB_USER}" "${JULIA_PKGDIR}" && \
fix-permissions $JULIA_PKGDIR fix-permissions "${JULIA_PKGDIR}"
USER $NB_UID USER $NB_UID
@@ -66,8 +71,8 @@ RUN conda install --quiet --yes \
'rpy2=3.1*' \ 'rpy2=3.1*' \
&& \ && \
conda clean --all -f -y && \ conda clean --all -f -y && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"
# Add Julia packages. Only add HDF5 if this is not a test-only build since # Add Julia packages. Only add HDF5 if this is not a test-only build since
# it takes roughly half the entire build time of all of the images on Travis # it takes roughly half the entire build time of all of the images on Travis
@@ -80,7 +85,9 @@ RUN julia -e 'import Pkg; Pkg.update()' && \
(test $TEST_ONLY_BUILD || julia -e 'import Pkg; Pkg.add("HDF5")') && \ (test $TEST_ONLY_BUILD || julia -e 'import Pkg; Pkg.add("HDF5")') && \
julia -e "using Pkg; pkg\"add IJulia\"; pkg\"precompile\"" && \ julia -e "using Pkg; pkg\"add IJulia\"; pkg\"precompile\"" && \
# move kernelspec out of home \ # move kernelspec out of home \
mv $HOME/.local/share/jupyter/kernels/julia* $CONDA_DIR/share/jupyter/kernels/ && \ mv "${HOME}/.local/share/jupyter/kernels/julia"* "${CONDA_DIR}/share/jupyter/kernels/" && \
chmod -R go+rx $CONDA_DIR/share/jupyter && \ chmod -R go+rx "${CONDA_DIR}/share/jupyter" && \
rm -rf $HOME/.local && \ rm -rf "${HOME}/.local" && \
fix-permissions $JULIA_PKGDIR $CONDA_DIR/share/jupyter fix-permissions "${JULIA_PKGDIR}" "${CONDA_DIR}/share/jupyter"
WORKDIR $HOME

78
docs/contributing/lint.md Normal file
View File

@@ -0,0 +1,78 @@
# Image Lint
To comply with [Docker best practices][dbp], we are using the [Hadolint][hadolint] tool to analyse each `Dockerfile` .
## Installation
There is a specific `make` target to install the linter.
By default `hadolint` will be installed in `${HOME}/hadolint`.
```bash
$ make lint-install
# Installing hadolint at /Users/romain/hadolint ...
# Installation done!
# Haskell Dockerfile Linter v1.17.6-0-gc918759
```
## Lint
### Per Stack
The linter can be run per stack.
```bash
$ make lint/scipy-notebook
# Linting Dockerfiles in scipy-notebook...
# scipy-notebook/Dockerfile:4 DL3006 Always tag the version of an image explicitly
# scipy-notebook/Dockerfile:11 DL3008 Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>`
# scipy-notebook/Dockerfile:18 SC2086 Double quote to prevent globbing and word splitting.
# scipy-notebook/Dockerfile:68 SC2086 Double quote to prevent globbing and word splitting.
# scipy-notebook/Dockerfile:68 DL3003 Use WORKDIR to switch to a directory
# scipy-notebook/Dockerfile:79 SC2086 Double quote to prevent globbing and word splitting.
# make: *** [lint/scipy-notebook] Error 1
```
Optionally you can pass arguments to the linter.
```bash
# Use a different export format
$ make lint/scipy-notebook ARGS="--format codeclimate"
```
### All the Stacks
The linter can be run against all the stacks.
```bash
$ make lint-all
```
## Ignoring Rules
Sometimes it is necessary to ignore [some rules][rules].
The following rules are ignored by default and sor for all images in the `.hadolint.yaml` file.
- [`DL3006`][DL3006]: We use a specific policy to manage image tags.
- `base-notebook` `FROM` clause is fixed but based on an argument (`ARG`).
- Building downstream images from (`FROM`) the latest is done on purpose.
- [`DL3008`][DL3008]: System packages are always updated (`apt-get`) to the latest version.
For other rules, the preferred way to do it is to flag ignored rules in the `Dockerfile`.
> It is also possible to ignore rules by using a special comment directly above the Dockerfile instruction you want to make an exception for. Ignore rule comments look like `# hadolint ignore=DL3001,SC1081`. For example:
```dockerfile
FROM ubuntu
# hadolint ignore=DL3003,SC1035
RUN cd /tmp && echo "hello!"
```
[hadolint]: https://github.com/hadolint/hadolint
[dbp]: https://docs.docker.com/develop/develop-images/dockerfile_best-practices
[rules]: https://github.com/hadolint/hadolint#rules
[DL3006]: https://github.com/hadolint/hadolint/wiki/DL3006
[DL3008]: https://github.com/hadolint/hadolint/wiki/DL3008

View File

@@ -47,6 +47,7 @@ Table of Contents
contributing/packages contributing/packages
contributing/recipes contributing/recipes
contributing/translations contributing/translations
contributing/lint
contributing/tests contributing/tests
contributing/features contributing/features
contributing/stacks contributing/stacks

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: docker-stacks latest\n" "Project-Id-Version: docker-stacks latest\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-29 13:13+0000\n" "POT-Creation-Date: 2020-06-13 17:24+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,12 +18,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.8.0\n"
#: ../../contributing/features.md:1 75d2338a7df843b2938eb01bbe66c7ee #: ../../contributing/features.md:1 73568dd40cf8400f866860c92fa9a585
msgid "# New Features" msgid "# New Features"
msgstr "" msgstr ""
# 64c3ecc68ada47afada78f945253c9e9 # 64c3ecc68ada47afada78f945253c9e9
#: ../../contributing/features.md:3 1ed4332ad73149a5a583228905b313a9 #: ../../contributing/features.md:3 68122b604e2e42c6ac8b339086c87100
msgid "" msgid ""
"Thank you for contributing to the Jupyter Docker Stacks! We review pull " "Thank you for contributing to the Jupyter Docker Stacks! We review pull "
"requests of new features (e.g., new packages, new scripts, new flags) to " "requests of new features (e.g., new packages, new scripts, new flags) to "
@@ -31,24 +31,24 @@ msgid ""
" maintaining the images over time." " maintaining the images over time."
msgstr "" msgstr ""
#: ../../contributing/features.md:5 192da0c147dc4a4eb60281f063016537 #: ../../contributing/features.md:5 12333534a174461da43d636f2b91508e
msgid "## Suggesting a New Feature" msgid "## Suggesting a New Feature"
msgstr "" msgstr ""
# c995f8cabb1d4b4fb53a9c56ae8e017b # c995f8cabb1d4b4fb53a9c56ae8e017b
#: ../../contributing/features.md:7 61db9ea05749413d8af6788a741c7241 #: ../../contributing/features.md:7 8cfae9246e674e638795557766880b19
msgid "" msgid ""
"Please follow the process below to suggest a new feature for inclusion in" "Please follow the process below to suggest a new feature for inclusion in"
" one of the core stacks:" " one of the core stacks:"
msgstr "" msgstr ""
#: ../../contributing/features.md:9 d20f12cc70ec4dc1b31ad53e708900e9 #: ../../contributing/features.md:9 4570b8972003443dbf43728a75f174f7
msgid "" msgid ""
"[Open a GitHub issue](https://github.com/jupyter/docker-stacks/issues) " "[Open a GitHub issue](https://github.com/jupyter/docker-stacks/issues) "
"describing the feature you'd like to contribute." "describing the feature you'd like to contribute."
msgstr "" msgstr ""
#: ../../contributing/features.md:10 f33fdddae0c549f6ab6c00de109b5d27 #: ../../contributing/features.md:10 5dc9c7f20a014c71b4ab55140024b384
msgid "" msgid ""
"Discuss with the maintainers whether the addition makes sense in [one of " "Discuss with the maintainers whether the addition makes sense in [one of "
"the core stacks](../using/selecting.md#Core-Stacks), as a [recipe in the " "the core stacks](../using/selecting.md#Core-Stacks), as a [recipe in the "
@@ -56,32 +56,32 @@ msgid ""
"something else entirely." "something else entirely."
msgstr "" msgstr ""
#: ../../contributing/features.md:12 9cda3fc10c9b4e5a8f4845655eac1d70 #: ../../contributing/features.md:12 bfafd430491f4ea4965b7ea6217b4cd9
msgid "## Selection Criteria" msgid "## Selection Criteria"
msgstr "" msgstr ""
# ca139cf0df684011bdf6f6f68e151796 # ca139cf0df684011bdf6f6f68e151796
#: ../../contributing/features.md:14 634fe86173d042f1a40ca03ae49bc2ef #: ../../contributing/features.md:14 f59a6f3d31164e3d928287667e10a7fe
msgid "" msgid ""
"Roughly speaking, we evaluate new features based on the following " "Roughly speaking, we evaluate new features based on the following "
"criteria:" "criteria:"
msgstr "" msgstr ""
#: ../../contributing/features.md:16 158f3559593b45de97000a0e27ce4a6b #: ../../contributing/features.md:16 2deadaa24a1340a3a148ca5a6f43c392
msgid "" msgid ""
"**Usefulness to Jupyter users**: Is the feature generally applicable " "**Usefulness to Jupyter users**: Is the feature generally applicable "
"across domains? Does it work with Jupyter Notebook, JupyterLab, " "across domains? Does it work with Jupyter Notebook, JupyterLab, "
"JupyterHub, etc.?" "JupyterHub, etc.?"
msgstr "" msgstr ""
#: ../../contributing/features.md:17 42b42e6549084d3788899f1968902371 #: ../../contributing/features.md:17 57c4f8a0e92842e291265ece9e88e447
msgid "" msgid ""
"**Fit with the image purpose**: Does the feature match the theme of the " "**Fit with the image purpose**: Does the feature match the theme of the "
"stack in which it will be added? Would it fit better in a new, community " "stack in which it will be added? Would it fit better in a new, community "
"stack?" "stack?"
msgstr "" msgstr ""
#: ../../contributing/features.md:18 1b148a07824d49fa8cadda9e7fe64e6e #: ../../contributing/features.md:18 e3819ccbbffa4fc99b3c611690473b20
msgid "" msgid ""
"**Complexity of build / runtime configuration**: How many lines of code " "**Complexity of build / runtime configuration**: How many lines of code "
"does the feature require in one of the Dockerfiles or startup scripts? " "does the feature require in one of the Dockerfiles or startup scripts? "
@@ -89,14 +89,14 @@ msgid ""
"use the images?" "use the images?"
msgstr "" msgstr ""
#: ../../contributing/features.md:19 5f46cea5d7b443fcb9aa88c723edad4e #: ../../contributing/features.md:19 9ce572bde2f7408fb3cdb1c29b8f393f
msgid "" msgid ""
"**Impact on image metrics**: How many bytes does the feature and its " "**Impact on image metrics**: How many bytes does the feature and its "
"dependencies add to the image(s)? How many minutes do they add to the " "dependencies add to the image(s)? How many minutes do they add to the "
"build time?" "build time?"
msgstr "" msgstr ""
#: ../../contributing/features.md:20 69a59ce66e2b42b3b909fdbac24bd7e4 #: ../../contributing/features.md:20 ee75c19fd4084273bf0b05bb26da1a42
msgid "" msgid ""
"**Ability to support the addition**: Can existing maintainers answer user" "**Ability to support the addition**: Can existing maintainers answer user"
" questions and address future build issues? Are the contributors " " questions and address future build issues? Are the contributors "
@@ -104,24 +104,24 @@ msgid ""
"ensure the feature continues to work over time?" "ensure the feature continues to work over time?"
msgstr "" msgstr ""
#: ../../contributing/features.md:22 f4ad3fa23649453585a06bfbbb5e94a6 #: ../../contributing/features.md:22 22881b02fcdd4c43bc280f7a8214dded
msgid "## Submitting a Pull Request" msgid "## Submitting a Pull Request"
msgstr "" msgstr ""
# f7ca9b40be90476eb97c8fcd67205e9d # f7ca9b40be90476eb97c8fcd67205e9d
#: ../../contributing/features.md:24 75b3feee9e9b4f2f8f1add9ae209b9af #: ../../contributing/features.md:24 ef4fabecf05c427797009ac7ecc9ffaa
msgid "" msgid ""
"If there's agreement that the feature belongs in one or more of the core " "If there's agreement that the feature belongs in one or more of the core "
"stacks:" "stacks:"
msgstr "" msgstr ""
#: ../../contributing/features.md:26 f901d30149094b0191e34edcb82ac751 #: ../../contributing/features.md:26 0ae6b52d2ae94508af546696d256a045
msgid "" msgid ""
"Implement the feature in a local clone of the `jupyter/docker-stacks` " "Implement the feature in a local clone of the `jupyter/docker-stacks` "
"project." "project."
msgstr "" msgstr ""
#: ../../contributing/features.md:29 ca0d179b7bfc449daee401cfefd5dddb #: ../../contributing/features.md:29 a043243b82c24bb3a0a6ac6fd4eb4ee3
msgid "" msgid ""
"Please build the image locally before submitting a pull request. Building" "Please build the image locally before submitting a pull request. Building"
" the image locally shortens the debugging cycle by taking some load off " " the image locally shortens the debugging cycle by taking some load off "
@@ -131,13 +131,13 @@ msgid ""
msgstr "" msgstr ""
#: ../../contributing/features.md:28 ../../contributing/packages.md:10 #: ../../contributing/features.md:28 ../../contributing/packages.md:10
#: 33609453c5b042d39ef23a23a6602391 ed786e76a3d44f51a1f4741dc5639bf5 #: d78d28f63e474115b2f9a07c30192c50 fc7a500fd8944c3b964c5a84c816c430
msgid "```bash make build/somestack-notebook ```" msgid "```bash make build/somestack-notebook ```"
msgstr "" msgstr ""
#: ../../contributing/features.md:31 ../../contributing/packages.md:13 #: ../../contributing/features.md:31 ../../contributing/packages.md:13
#: ../../contributing/tests.md:20 694756b9f11a4020ae66440a3a3073cd #: ../../contributing/tests.md:20 00212e32fbc5405cb89e2c1d64747446
#: 6f7ef0e838254b78a8788c43c92ab7ac 988385ba6b0c44bf805721528f5915cb #: 0cd21fddaf2744478818394f1db2fee6 200d6bfb805740ca9f26994a2629cf66
msgid "" msgid ""
"[Submit a pull request](https://github.com/PointCloudLibrary/pcl/wiki/A" "[Submit a pull request](https://github.com/PointCloudLibrary/pcl/wiki/A"
"-step-by-step-guide-on-preparing-and-submitting-a-pull-request) (PR) with" "-step-by-step-guide-on-preparing-and-submitting-a-pull-request) (PR) with"
@@ -145,30 +145,30 @@ msgid ""
msgstr "" msgstr ""
#: ../../contributing/features.md:32 ../../contributing/packages.md:14 #: ../../contributing/features.md:32 ../../contributing/packages.md:14
#: ../../contributing/tests.md:21 0018f237b0544b4a9986b1c8bc4f6747 #: ../../contributing/tests.md:21 01006b1634664420a55ab93140eeba1c
#: 94c093d9273548a4bf63411dd313a18a c54af194694d4da293397dce6e946131 #: 1533f4346ec44d63aeff57798ed43311 ac34ca3def304fa1a7bc186ecb08d362
msgid "" msgid ""
"Watch for Travis to report a build success or failure for your PR on " "Watch for Travis to report a build success or failure for your PR on "
"GitHub." "GitHub."
msgstr "" msgstr ""
#: ../../contributing/features.md:33 9ac694f350a1492688f35b1cc94b90f3 #: ../../contributing/features.md:33 c1f5f6fff58944579bbac57d11eed188
msgid "Discuss changes with the maintainers and address any build issues." msgid "Discuss changes with the maintainers and address any build issues."
msgstr "" msgstr ""
#: ../../contributing/issues.md:1 e0aca6ee4ec045efb75ff849a33869ba #: ../../contributing/issues.md:1 90d9d26c52694bd39702dbe085548e60
msgid "# Project Issues" msgid "# Project Issues"
msgstr "" msgstr ""
# 9c2a6e9f67354e86aca23758676fca43 # 9c2a6e9f67354e86aca23758676fca43
#: ../../contributing/issues.md:3 21e3ece2076a4440b4f5bf405bb77d9b #: ../../contributing/issues.md:3 ce7326457bd24c7284f84626ef7657e2
msgid "" msgid ""
"We appreciate your taking the time to report an issue you encountered " "We appreciate your taking the time to report an issue you encountered "
"using the Jupyter Docker Stacks. Please review the following guidelines " "using the Jupyter Docker Stacks. Please review the following guidelines "
"when reporting your problem." "when reporting your problem."
msgstr "" msgstr ""
#: ../../contributing/issues.md:7 1b4130d2b65a434185c7c79f17aaa118 #: ../../contributing/issues.md:7 fd5aba92b5364d0e962a55331aee6659
msgid "" msgid ""
"If you believe youve found a security vulnerability in any of the " "If you believe youve found a security vulnerability in any of the "
"Jupyter projects included in Jupyter Docker Stacks images, please report " "Jupyter projects included in Jupyter Docker Stacks images, please report "
@@ -178,7 +178,7 @@ msgid ""
"notebook.readthedocs.io/en/stable/_downloads/ipython_security.asc)." "notebook.readthedocs.io/en/stable/_downloads/ipython_security.asc)."
msgstr "" msgstr ""
#: ../../contributing/issues.md:13 951fc60fdacf4b3aadd96b5a3b200316 #: ../../contributing/issues.md:13 31028151b38b42cc9a502a2e3b899903
msgid "" msgid ""
"If you think your problem is unique to the Jupyter Docker Stacks images, " "If you think your problem is unique to the Jupyter Docker Stacks images, "
"please search the [jupyter/docker-stacks issue " "please search the [jupyter/docker-stacks issue "
@@ -189,14 +189,14 @@ msgid ""
msgstr "" msgstr ""
# 69a18cc239b34b94800599bf185f58d6 # 69a18cc239b34b94800599bf185f58d6
#: ../../contributing/issues.md:19 fc8bdf2071fe4f8bbdb7d4eb437a2579 #: ../../contributing/issues.md:19 3432baed3e664b9981402ba57e82f0d5
msgid "" msgid ""
"If the issue you're seeing is with one of the open source libraries " "If the issue you're seeing is with one of the open source libraries "
"included in the Docker images and is reproducible outside the images, " "included in the Docker images and is reproducible outside the images, "
"please file a bug with the appropriate open source project." "please file a bug with the appropriate open source project."
msgstr "" msgstr ""
#: ../../contributing/issues.md:22 fa26d1ffb9d444b68279650988a09158 #: ../../contributing/issues.md:22 27a1501090a044fea57a9b3d193d1ef9
msgid "" msgid ""
"If you have a general question about how to use the Jupyter Docker Stacks" "If you have a general question about how to use the Jupyter Docker Stacks"
" in your environment, in conjunction with other tools, with " " in your environment, in conjunction with other tools, with "
@@ -204,12 +204,153 @@ msgid ""
"Discourse site](https://discourse.jupyter.org)." "Discourse site](https://discourse.jupyter.org)."
msgstr "" msgstr ""
#: ../../contributing/packages.md:1 337149445e4b49138fc7fdeaf004a4aa #: ../../contributing/lint.md:1 f9f3dd16e01847edbfbfcf9ae2985042
msgid "# Image Lint"
msgstr ""
#: ../../contributing/lint.md:3 af0370f47a714f5c8c7d7209b5bb1aec
msgid ""
"To comply with [Docker best practices][dbp], we are using the "
"[Hadolint][hadolint] tool to analyse each `Dockerfile` ."
msgstr ""
#: ../../contributing/lint.md:5 c731a817fbe8414fb102cf3a1a25ea96
msgid "## Installation"
msgstr ""
#: ../../contributing/lint.md:7 52bbf3443b1d429f87a3930e4ad0fbc0
msgid ""
"There is a specific `make` target to install the linter. By default "
"`hadolint` will be installed in `${HOME}/hadolint`."
msgstr ""
#: ../../contributing/lint.md:10 98a0b08d5afe4338aeec1d7699f76a2d
msgid "```bash $ make lint-install"
msgstr ""
#: ../../contributing/lint.md:13 1d3fb52955c64b209df424d724c9679c
msgid ""
"# Installing hadolint at /Users/romain/hadolint ... # Installation done! "
"# Haskell Dockerfile Linter v1.17.6-0-gc918759 ```"
msgstr ""
#: ../../contributing/lint.md:18 507b0e46012d4419948aa6a603086fe3
msgid "## Lint"
msgstr ""
#: ../../contributing/lint.md:20 da32627dc3ed420bae073e85bd79c406
msgid "### Per Stack"
msgstr ""
#: ../../contributing/lint.md:22 c42134dea1a44a27a508f58af72e698b
msgid "The linter can be run per stack."
msgstr ""
#: ../../contributing/lint.md:24 3394806edf7447b88f7ebd1445e4b259
msgid "```bash $ make lint/scipy-notebook"
msgstr ""
#: ../../contributing/lint.md:27 8bd8362eeb2a4d26b9f1d79da20841e9
msgid ""
"# Linting Dockerfiles in scipy-notebook... # scipy-notebook/Dockerfile:4 "
"DL3006 Always tag the version of an image explicitly # scipy-"
"notebook/Dockerfile:11 DL3008 Pin versions in apt get install. Instead of"
" `apt-get install <package>` use `apt-get install <package>=<version>` # "
"scipy-notebook/Dockerfile:18 SC2086 Double quote to prevent globbing and "
"word splitting. # scipy-notebook/Dockerfile:68 SC2086 Double quote to "
"prevent globbing and word splitting. # scipy-notebook/Dockerfile:68 "
"DL3003 Use WORKDIR to switch to a directory # scipy-"
"notebook/Dockerfile:79 SC2086 Double quote to prevent globbing and word "
"splitting. # make: *** [lint/scipy-notebook] Error 1 ```"
msgstr ""
#: ../../contributing/lint.md:37 3274ec37f4224d2b9ab8367292c905dd
msgid "Optionally you can pass arguments to the linter."
msgstr ""
#: ../../contributing/lint.md:39 d4cb9163b89b493a925203d318d9d1ba
msgid ""
"```bash # Use a different export format $ make lint/scipy-notebook "
"ARGS=\"--format codeclimate\" ```"
msgstr ""
#: ../../contributing/lint.md:44 b41fe7b4867749a89539b155925dc619
msgid "### All the Stacks"
msgstr ""
#: ../../contributing/lint.md:46 a729e34bfd764f4694567b06dcc084aa
msgid "The linter can be run against all the stacks."
msgstr ""
#: ../../contributing/lint.md:48 c84237491ed046fca7551f92bd147365
msgid "```bash $ make lint-all ```"
msgstr ""
#: ../../contributing/lint.md:52 50166f6463634b4a90d25e7b96cc4b12
msgid "## Ignoring Rules"
msgstr ""
#: ../../contributing/lint.md:54 356fc7c100ef4a8fbd748eb27367d356
msgid ""
"Sometimes it is necessary to ignore [some rules][rules]. The following "
"rules are ignored by default and sor for all images in the "
"`.hadolint.yaml` file."
msgstr ""
#: ../../contributing/lint.md:57 cf97f4a183734b8d9e57b760cfccc627
msgid ""
"[`DL3006`][DL3006]: We use a specific policy to manage image tags. - "
"`base-notebook` `FROM` clause is fixed but based on an argument (`ARG`). "
"- Building downstream images from (`FROM`) the latest is done on purpose."
msgstr ""
#: ../../contributing/lint.md:60 70076669dfb94f11b1194fbd7976a584
msgid ""
"[`DL3008`][DL3008]: System packages are always updated (`apt-get`) to the"
" latest version."
msgstr ""
#: ../../contributing/lint.md:62 bdaf17200ecb4201b6d147943cf1b021
msgid ""
"For other rules, the preferred way to do it is to flag ignored rules in "
"the `Dockerfile`."
msgstr ""
#: ../../contributing/lint.md:64 9965b559072043e6a66ec2fec7710ad4
msgid ""
"> It is also possible to ignore rules by using a special comment directly"
" above the Dockerfile instruction you want to make an exception for. "
"Ignore rule comments look like `# hadolint ignore=DL3001,SC1081`. For "
"example:"
msgstr ""
#: ../../contributing/lint.md:66 cb3b17c195084c669cae96359e30709f
msgid "```dockerfile"
msgstr ""
#: ../../contributing/lint.md:68 3ca17796e05a437d98882aecce21b7a5
msgid "FROM ubuntu"
msgstr ""
#: ../../contributing/lint.md:70 c0214b6cb2d2487fae29e29815c68a05
msgid "# hadolint ignore=DL3003,SC1035 RUN cd /tmp && echo \"hello!\" ```"
msgstr ""
#: ../../contributing/lint.md:74 6d86e357bd26405886819fd0f55bc87c
msgid ""
"[hadolint]: https://github.com/hadolint/hadolint [dbp]: "
"https://docs.docker.com/develop/develop-images/dockerfile_best-practices "
"[rules]: https://github.com/hadolint/hadolint#rules [DL3006]: "
"https://github.com/hadolint/hadolint/wiki/DL3006 [DL3008]: "
"https://github.com/hadolint/hadolint/wiki/DL3008"
msgstr ""
#: ../../contributing/packages.md:1 0e3c0f42f4484000ad6997221929c575
msgid "# Package Updates" msgid "# Package Updates"
msgstr "" msgstr ""
# 5f269a667f9a4c3ca342cfb49ecaefb2 # 5f269a667f9a4c3ca342cfb49ecaefb2
#: ../../contributing/packages.md:3 897b0d9a196441d29acbebcf99b2cdfd #: ../../contributing/packages.md:3 8686c5370f0b4a4786e58960d4c0c1f8
msgid "" msgid ""
"We actively seek pull requests which update packages already included in " "We actively seek pull requests which update packages already included in "
"the project Dockerfiles. This is a great way for first-time contributors " "the project Dockerfiles. This is a great way for first-time contributors "
@@ -217,11 +358,11 @@ msgid ""
msgstr "" msgstr ""
# 30d4a79bce8d439d97e6e3555a088548 # 30d4a79bce8d439d97e6e3555a088548
#: ../../contributing/packages.md:5 a13067f88b8b4b62aee962892df27a6d #: ../../contributing/packages.md:5 68187b524c5d418281ff4c0ba2d5ea3c
msgid "Please follow the process below to update a package version:" msgid "Please follow the process below to update a package version:"
msgstr "" msgstr ""
#: ../../contributing/packages.md:7 2c6c020feac74899bf18caa4227814cb #: ../../contributing/packages.md:7 7629d9afde3d46ca98cbe37c1e7fadad
msgid "" msgid ""
"Locate the Dockerfile containing the library you wish to update (e.g., " "Locate the Dockerfile containing the library you wish to update (e.g., "
"[base-notebook/Dockerfile](https://github.com/jupyter/docker-" "[base-notebook/Dockerfile](https://github.com/jupyter/docker-"
@@ -230,7 +371,7 @@ msgid ""
"/scipy-notebook/Dockerfile))" "/scipy-notebook/Dockerfile))"
msgstr "" msgstr ""
#: ../../contributing/packages.md:8 0c1092286f6b45fa9f60b3da1de118bd #: ../../contributing/packages.md:8 209a59a32f7d416395da48ba7deb9ec4
msgid "" msgid ""
"Adjust the version number for the package. We prefer to pin the major and" "Adjust the version number for the package. We prefer to pin the major and"
" minor version number of packages so as to minimize rebuild side-effects " " minor version number of packages so as to minimize rebuild side-effects "
@@ -239,7 +380,7 @@ msgid ""
"`notebook=5.4.*`." "`notebook=5.4.*`."
msgstr "" msgstr ""
#: ../../contributing/packages.md:11 a482b9e64916488291bf251a339a5f82 #: ../../contributing/packages.md:11 ae6f768e7d254148afe4f65691363d4c
msgid "" msgid ""
"Please build the image locally before submitting a pull request. Building" "Please build the image locally before submitting a pull request. Building"
" the image locally shortens the debugging cycle by taking some load off " " the image locally shortens the debugging cycle by taking some load off "
@@ -247,18 +388,18 @@ msgid ""
"services for open source projects like this one. If you use `make`, call:" "services for open source projects like this one. If you use `make`, call:"
msgstr "" msgstr ""
#: ../../contributing/packages.md:15 a2f3a70c805249b4ac0ad813abe8547a #: ../../contributing/packages.md:15 33c70276f8544f4c9ce33f0fee67ae97
msgid "" msgid ""
"Discuss changes with the maintainers and address any build issues. " "Discuss changes with the maintainers and address any build issues. "
"Version conflicts are the most common problem. You may need to upgrade " "Version conflicts are the most common problem. You may need to upgrade "
"additional packages to fix build failures." "additional packages to fix build failures."
msgstr "" msgstr ""
#: ../../contributing/packages.md:17 07ac92ed999a4c53b2b2022f9f02649e #: ../../contributing/packages.md:17 7cf4452f20ed4bafaf16b523ef383325
msgid "## Notes" msgid "## Notes"
msgstr "" msgstr ""
#: ../../contributing/packages.md:19 bd1253c218b04ab2abf1b6541805e8cf #: ../../contributing/packages.md:19 4d3fe02500b7454ab0413148de50f87e
msgid "" msgid ""
"In order to help identifying packages that can be updated you can use the" "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 " " following helper tool. It will list all the packages installed in the "
@@ -266,11 +407,11 @@ msgid ""
"only on requested packages." "only on requested packages."
msgstr "" msgstr ""
#: ../../contributing/packages.md:22 a8f2ac2736754100961c05932519c5a2 #: ../../contributing/packages.md:22 829b62bdfee54ce7912f4fd82e0811f1
msgid "```bash $ make check-outdated/base-notebook" msgid "```bash $ make check-outdated/base-notebook"
msgstr "" msgstr ""
#: ../../contributing/packages.md:25 b9f718b69c5f4bfa93c3c0fce4298b4b #: ../../contributing/packages.md:25 bc22117d06cc4f8792314762474712fa
msgid "" msgid ""
"# INFO test_outdated:test_outdated.py:80 3/8 (38%) packages could be " "# INFO test_outdated:test_outdated.py:80 3/8 (38%) packages could be "
"updated # INFO test_outdated:test_outdated.py:82 # Package " "updated # INFO test_outdated:test_outdated.py:82 # Package "
@@ -279,11 +420,11 @@ msgid ""
"```" "```"
msgstr "" msgstr ""
#: ../../contributing/recipes.md:1 6cd4f9700d334830aaa742ae246f0938 #: ../../contributing/recipes.md:1 b62539e910b449cab65460c586b9460c
msgid "# New Recipes" msgid "# New Recipes"
msgstr "" msgstr ""
#: ../../contributing/recipes.md:3 059e951fe37f40f3b68d837e13184e51 #: ../../contributing/recipes.md:3 dc7089fe2a494ea19925cf8af9a59e5a
msgid "" msgid ""
"We welcome contributions of [recipes](../using/recipes.md), short " "We welcome contributions of [recipes](../using/recipes.md), short "
"examples of using, configuring, or extending the Docker Stacks, for " "examples of using, configuring, or extending the Docker Stacks, for "
@@ -291,25 +432,25 @@ msgid ""
"new recipe:" "new recipe:"
msgstr "" msgstr ""
#: ../../contributing/recipes.md:5 e591368246344c768e85a854923256d1 #: ../../contributing/recipes.md:5 e10b70b695d147fb850d11b48beee7fc
msgid "Open the `docs/using/recipes.md` source file." msgid "Open the `docs/using/recipes.md` source file."
msgstr "" msgstr ""
#: ../../contributing/recipes.md:6 e09e814cc87d4d0dac83f457128b086e #: ../../contributing/recipes.md:6 7151c9e77ada4212adf77cae937e3cae
msgid "" msgid ""
"Add a second-level Markdown heading naming your recipe at the bottom of " "Add a second-level Markdown heading naming your recipe at the bottom of "
"the file (e.g., `## Add the RISE extension`)" "the file (e.g., `## Add the RISE extension`)"
msgstr "" msgstr ""
# 8838b0ff2be24c23afaca9a6f43a9b66 # 8838b0ff2be24c23afaca9a6f43a9b66
#: ../../contributing/recipes.md:7 3d05c2a118e0498b94b5813bb9b0f53a #: ../../contributing/recipes.md:7 541d6ad94859490d98c8a7f04baa4947
msgid "" msgid ""
"Write the body of your recipe under the heading, including whatever " "Write the body of your recipe under the heading, including whatever "
"command line, Dockerfile, links, etc. you need." "command line, Dockerfile, links, etc. you need."
msgstr "" msgstr ""
#: ../../contributing/recipes.md:8 ../../contributing/stacks.md:111 #: ../../contributing/recipes.md:8 ../../contributing/stacks.md:111
#: 15bac7d4563947a4810fda0f57825b65 1606bfa09c9743558da2a5619b8efeb1 #: 0b5ab045564f4c85a442996b93340288 8c42e042130646cb8e715440d3c88932
msgid "" msgid ""
"[Submit a pull request](https://github.com/PointCloudLibrary/pcl/wiki/A" "[Submit a pull request](https://github.com/PointCloudLibrary/pcl/wiki/A"
"-step-by-step-guide-on-preparing-and-submitting-a-pull-request) (PR) with" "-step-by-step-guide-on-preparing-and-submitting-a-pull-request) (PR) with"
@@ -317,11 +458,11 @@ msgid ""
"formatting or content issues." "formatting or content issues."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:1 134550980fff4f2b987d3bf5fccc43eb #: ../../contributing/stacks.md:1 e23e06546a29406db6e337f82fabc3e6
msgid "# Community Stacks" msgid "# Community Stacks"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:3 7f3ec7bc3c13480fb5c422cc8b7494af #: ../../contributing/stacks.md:3 74ab09f407b744bdac1945aebbd91bcb
msgid "" msgid ""
"We love to see the community create and share new Jupyter Docker images. " "We love to see the community create and share new Jupyter Docker images. "
"We've put together a [cookiecutter project](https://github.com/jupyter" "We've put together a [cookiecutter project](https://github.com/jupyter"
@@ -330,137 +471,137 @@ msgid ""
"Docker. Following these steps will:" "Docker. Following these steps will:"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:5 2976695bd2344b019122846f435183a3 #: ../../contributing/stacks.md:5 7b86926f795a4846ab36cb755f3f1306
msgid "" msgid ""
"Setup a project on GitHub containing a Dockerfile based on either the " "Setup a project on GitHub containing a Dockerfile based on either the "
"`jupyter/base-notebook` or `jupyter/minimal-notebook` image." "`jupyter/base-notebook` or `jupyter/minimal-notebook` image."
msgstr "" msgstr ""
# 8fa22b86dc9f4750b0b903371f16c1e6 # 8fa22b86dc9f4750b0b903371f16c1e6
#: ../../contributing/stacks.md:6 a5417897bb4845c985d7ecf9e781b6d6 #: ../../contributing/stacks.md:6 194fc91e8b984dda94639d27941218e0
msgid "" msgid ""
"Configure Travis CI to build and test your image when users submit pull " "Configure Travis CI to build and test your image when users submit pull "
"requests to your repository." "requests to your repository."
msgstr "" msgstr ""
# cb04d6b8877b47e78277b7025f642ae3 # cb04d6b8877b47e78277b7025f642ae3
#: ../../contributing/stacks.md:7 359c229924ef4175a3e564c18ae36c79 #: ../../contributing/stacks.md:7 3b980b7f6c1d4032b562e2f2ee6987e4
msgid "Configure Docker Cloud to build and host your images for others to use." msgid "Configure Docker Cloud to build and host your images for others to use."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:8 6399d9f79260442b8a2c25287e655ada #: ../../contributing/stacks.md:8 38319010672e4fc6a302f43b8df51ffb
msgid "" msgid ""
"Update the [list of community stacks](../using/selecting.html#community-" "Update the [list of community stacks](../using/selecting.html#community-"
"stacks) in this documentation to include your image." "stacks) in this documentation to include your image."
msgstr "" msgstr ""
# 8e0fd1dc73cc40ceab19307d0cd809c1 # 8e0fd1dc73cc40ceab19307d0cd809c1
#: ../../contributing/stacks.md:10 d8fdffc26b8a47b1aadfa19c801df6f3 #: ../../contributing/stacks.md:10 7718d7d6d0bc4e67bd75b64bdadba041
msgid "" msgid ""
"This approach mirrors how we build and share the core stack images. Feel " "This approach mirrors how we build and share the core stack images. Feel "
"free to follow it or pave your own path using alternative services and " "free to follow it or pave your own path using alternative services and "
"build tools." "build tools."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:12 5d3cdb2a3d5a4febac02c0a65c1d0921 #: ../../contributing/stacks.md:12 b8c907e8c118419796d1620ac9e71c8f
msgid "## Creating a Project" msgid "## Creating a Project"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:14 5d42e40646cb444598e54e9b5c539f70 #: ../../contributing/stacks.md:14 b635c7a30ced4430b88fed123c2231f7
msgid "" msgid ""
"First, install [cookiecutter](https://github.com/audreyr/cookiecutter) " "First, install [cookiecutter](https://github.com/audreyr/cookiecutter) "
"using pip or conda:" "using pip or conda:"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:16 4ffb50e2ae124f7a8be150dc4b3267e0 #: ../../contributing/stacks.md:16 3db9dc85806e46b791468009008aec23
msgid "```bash pip install cookiecutter # or conda install cookiecutter ```" msgid "```bash pip install cookiecutter # or conda install cookiecutter ```"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:20 c14dcf935d1f4cb5a058d98fd16e99a4 #: ../../contributing/stacks.md:20 2427280d8b0a4f178aa400c8fad76bfc
msgid "" msgid ""
"Run the cookiecutter command pointing to the [jupyter/cookiecutter-" "Run the cookiecutter command pointing to the [jupyter/cookiecutter-"
"docker-stacks](https://github.com/jupyter/cookiecutter-docker-stacks) " "docker-stacks](https://github.com/jupyter/cookiecutter-docker-stacks) "
"project on GitHub." "project on GitHub."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:22 75c50c170d7944229e570859a393e39a #: ../../contributing/stacks.md:22 32e9f27558ea4e09a52c9f1d62251fbb
msgid "" msgid ""
"```bash cookiecutter https://github.com/jupyter/cookiecutter-docker-" "```bash cookiecutter https://github.com/jupyter/cookiecutter-docker-"
"stacks.git ```" "stacks.git ```"
msgstr "" msgstr ""
# 676ff068156d4ca7b1043b4a4fe2d1f1 # 676ff068156d4ca7b1043b4a4fe2d1f1
#: ../../contributing/stacks.md:26 c91ecedbdef0403fb06bc37884fd9618 #: ../../contributing/stacks.md:26 a2566ac2324448e9af272bd9c5a1c1c1
msgid "" msgid ""
"Enter a name for your new stack image. This will serve as both the git " "Enter a name for your new stack image. This will serve as both the git "
"repository name and the part of the Docker image name after the slash." "repository name and the part of the Docker image name after the slash."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:29 f4454df1631d4635a006f29b288c46b6 #: ../../contributing/stacks.md:29 2dd8006f293643b1ba1ba9771a9bf992
msgid "``` stack_name [my-jupyter-stack]: ```" msgid "``` stack_name [my-jupyter-stack]: ```"
msgstr "" msgstr ""
# 96deffa98bab47da82e5598e549c8a39 # 96deffa98bab47da82e5598e549c8a39
#: ../../contributing/stacks.md:33 1d43fe411ea649c999cc82a9ae24bf5d #: ../../contributing/stacks.md:33 7b87469603c2457d8efbd8d38e1997a7
msgid "" msgid ""
"Enter the user or organization name under which this stack will reside on" "Enter the user or organization name under which this stack will reside on"
" Docker Cloud / Hub. You must have access to manage this Docker Cloud org" " Docker Cloud / Hub. You must have access to manage this Docker Cloud org"
" in order to push images here and setup automated builds." " in order to push images here and setup automated builds."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:37 8b411724c2054ca38808290b8cac6459 #: ../../contributing/stacks.md:37 de7fe5882a97405eb9c3e111f4fa3413
msgid "``` stack_org [my-project]: ```" msgid "``` stack_org [my-project]: ```"
msgstr "" msgstr ""
# b796c2d7c08b4a1db5cdfd3de7d84c16 # b796c2d7c08b4a1db5cdfd3de7d84c16
#: ../../contributing/stacks.md:41 fb6511956cfd462fa9bdfade3c478835 #: ../../contributing/stacks.md:41 f94ec73b9c784cc1bcfb33494e5ce0df
msgid "" msgid ""
"Select an image from the jupyter/docker-stacks project that will serve as" "Select an image from the jupyter/docker-stacks project that will serve as"
" the base for your new image." " the base for your new image."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:44 f558dd4326144036be2bb4a7a8b6a628 #: ../../contributing/stacks.md:44 a64c3be460d0452aab96151c5a8bda12
msgid "``` stack_base_image [jupyter/base-notebook]: ```" msgid "``` stack_base_image [jupyter/base-notebook]: ```"
msgstr "" msgstr ""
# 7ef9d73286d04b12a1350e8d9565df65 # 7ef9d73286d04b12a1350e8d9565df65
#: ../../contributing/stacks.md:48 fcfed0b5f01e4833b0693dda40f446a1 #: ../../contributing/stacks.md:48 26646e2da5c2495a9d24b9d5522854e4
msgid "Enter a longer description of the stack for your README." msgid "Enter a longer description of the stack for your README."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:50 43505e5b045d4765a03acd882b4ce0b7 #: ../../contributing/stacks.md:50 57d24b5517b8495bbf6857ac93cbaf85
msgid "" msgid ""
"``` stack_description [my-jupyter-stack is a community maintained Jupyter" "``` stack_description [my-jupyter-stack is a community maintained Jupyter"
" Docker Stack image]: ```" " Docker Stack image]: ```"
msgstr "" msgstr ""
# 479d3a5c6ef9481a9dc4033224c540fa # 479d3a5c6ef9481a9dc4033224c540fa
#: ../../contributing/stacks.md:54 f296538abe2d4c28867dbee697e27cae #: ../../contributing/stacks.md:54 8c29ebcb67d94ca6b3761878e460e002
msgid "Initialize your project as a Git repository and push it to GitHub." msgid "Initialize your project as a Git repository and push it to GitHub."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:56 8bec73b0ac4f403e9f6801f5309dec96 #: ../../contributing/stacks.md:56 8a1307c751be41299ff0afdb2193fa5c
msgid "``` cd <stack_name you chose>" msgid "``` cd <stack_name you chose>"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:59 59db2fa814e2412fa23f6f4a79c900b5 #: ../../contributing/stacks.md:59 6cd23d80cc3c4de1a59a3ce5451177cd
msgid "" msgid ""
"git init git add . git commit -m 'Seed repo' git remote add origin <url " "git init git add . git commit -m 'Seed repo' git remote add origin <url "
"from github> git push -u origin master ```" "from github> git push -u origin master ```"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:66 7ad2b1ce5d3e4452b60a046a07ee070d #: ../../contributing/stacks.md:66 6e38296bbde24e12898e62d2476e0889
msgid "## Configuring Travis" msgid "## Configuring Travis"
msgstr "" msgstr ""
# 38e3784d96f64d7481f0e1fd17aff9cb # 38e3784d96f64d7481f0e1fd17aff9cb
#: ../../contributing/stacks.md:68 f2178e8b53cf410e9a21288e50ad1b8e #: ../../contributing/stacks.md:68 af1ed0ba41394284a6e172594a0ced31
msgid "" msgid ""
"Next, link your GitHub project to Travis CI to build your Docker image " "Next, link your GitHub project to Travis CI to build your Docker image "
"whenever you or someone else submits a pull request." "whenever you or someone else submits a pull request."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:70 c59ea12ab2d449278a93078c98accc10 #: ../../contributing/stacks.md:70 a2d9189c4b174051bd4f4e221c7e1fe5
msgid "" msgid ""
"1. Visit [https://docs.travis-ci.com/user/getting-started/#To-get-" "1. Visit [https://docs.travis-ci.com/user/getting-started/#To-get-"
"started-with-Travis-CI](https://docs.travis-ci.com/user/getting-started" "started-with-Travis-CI](https://docs.travis-ci.com/user/getting-started"
@@ -470,123 +611,123 @@ msgid ""
"left sidebar." "left sidebar."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:73 202ef2d1fddc417a8cc9d42e2e3d8c08 #: ../../contributing/stacks.md:73 8334004f6df740dea6a905b9f5972d4c
msgid "" msgid ""
"![Travis sidebar with plus button screenshot](../_static/travis-plus-" "![Travis sidebar with plus button screenshot](../_static/travis-plus-"
"repo.png)" "repo.png)"
msgstr "" msgstr ""
# ac370ece6fb24becb8034cb994ad8f4b # ac370ece6fb24becb8034cb994ad8f4b
#: ../../contributing/stacks.md:74 5483e5000673485692e947375fb80dea #: ../../contributing/stacks.md:74 d237527b18974c92886a87127521f56d
msgid "" msgid ""
"Locate your project repository either in your primary user account or in " "Locate your project repository either in your primary user account or in "
"one of the organizations to which you belong." "one of the organizations to which you belong."
msgstr "" msgstr ""
# 6b6a7bab547d4e25bd930009a6a9ea44 # 6b6a7bab547d4e25bd930009a6a9ea44
#: ../../contributing/stacks.md:75 00001f96d2ba4e1c90a10cd0e24818e7 #: ../../contributing/stacks.md:75 1dbc14fe092646d0b4248901235b40ed
msgid "Click the toggle to enable builds for the project repository." msgid "Click the toggle to enable builds for the project repository."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:76 5bda85982bee4d98b26da3c9bc12bf47 #: ../../contributing/stacks.md:76 a610a6a093a247eba3877322568d0bb9
msgid "Click the **Settings** button for that repository." msgid "Click the **Settings** button for that repository."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:77 784ae3adc22b4699901637b95d6f4e22 #: ../../contributing/stacks.md:77 817ec9e36c8347d2b1f568654e28af83
msgid "" msgid ""
"![Travis enable build toggle screenshot](../_static/travis-enable-" "![Travis enable build toggle screenshot](../_static/travis-enable-"
"build.png)" "build.png)"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:78 3fac5e0b02204bc9922af7ee36db8f7a #: ../../contributing/stacks.md:78 84e38ed3b3b24e92a4f33db3af03723f
msgid "" msgid ""
"Enable **Build only if .travis.yml is present** and **Build pushed pull " "Enable **Build only if .travis.yml is present** and **Build pushed pull "
"requests**." "requests**."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:79 711a2aad9f1e4ae8a4f99725422a92ee #: ../../contributing/stacks.md:79 b57a3c1f90a74d769abc08bbada764ac
msgid "![Travis build settings screenshot](../_static/travis-build-settings.png)" msgid "![Travis build settings screenshot](../_static/travis-build-settings.png)"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:80 e17b07cdadef4c18ad968dd70d5f8947 #: ../../contributing/stacks.md:80 577c4b978be540329cab6349be01db75
msgid "Disable **Build pushed branches**." msgid "Disable **Build pushed branches**."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:82 b36a850c104b4d73876959545089b033 #: ../../contributing/stacks.md:82 9a3a675353694b418d23ce190fcde1c8
msgid "## Configuring Docker Cloud" msgid "## Configuring Docker Cloud"
msgstr "" msgstr ""
# f0c01a2906494d039d73324e90cbae44 # f0c01a2906494d039d73324e90cbae44
#: ../../contributing/stacks.md:84 90df9b8423c3452482065437e63912b0 #: ../../contributing/stacks.md:84 bfd61f89b75543b3b24fbc92d3f70964
msgid "" msgid ""
"Now, configure Docker Cloud to build your stack image and push it to " "Now, configure Docker Cloud to build your stack image and push it to "
"Docker Hub repository whenever you merge a GitHub pull request to the " "Docker Hub repository whenever you merge a GitHub pull request to the "
"master branch of your project." "master branch of your project."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:86 3a54a669d6284ddfa7b335ddc7212e7e #: ../../contributing/stacks.md:86 69cac7c980ab463083404e170a8f5e34
msgid "Visit [https://cloud.docker.com/](https://cloud.docker.com/) and login." msgid "Visit [https://cloud.docker.com/](https://cloud.docker.com/) and login."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:87 2d8b23653837435e862d8da50fc1172c #: ../../contributing/stacks.md:87 02e0caa91e7b4069a8e07e10914445b0
msgid "" msgid ""
"Select the account or organization matching the one you entered when " "Select the account or organization matching the one you entered when "
"prompted with `stack_org` by the cookiecutter." "prompted with `stack_org` by the cookiecutter."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:88 c0bfd69d6d2646dc8c1a7ad069ebb4d4 #: ../../contributing/stacks.md:88 1984a088c6af48899d61c5fa3f01fe55
msgid "![Docker account selection screenshot](../_static/docker-org-select.png)" msgid "![Docker account selection screenshot](../_static/docker-org-select.png)"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:89 4370325a9ec14601973ecfb3fc266197 #: ../../contributing/stacks.md:89 e4725346fb314d54ae78fb41c976709a
msgid "Scroll to the bottom of the page and click **Create repository**." msgid "Scroll to the bottom of the page and click **Create repository**."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:90 d84f97e45d4e49eb9be9673fd94bcfe3 #: ../../contributing/stacks.md:90 40088f0729d44d2cab75763351776a30
msgid "" msgid ""
"Enter the name of the image matching the one you entered when prompted " "Enter the name of the image matching the one you entered when prompted "
"with `stack_name` by the cookiecutter." "with `stack_name` by the cookiecutter."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:91 69510f1bb335412eb7185ced1decb98c #: ../../contributing/stacks.md:91 31cc5283e7424d7bb9665f599ac70b9f
msgid "" msgid ""
"![Docker image name and description screenshot](../_static/docker-repo-" "![Docker image name and description screenshot](../_static/docker-repo-"
"name.png)" "name.png)"
msgstr "" msgstr ""
# 79092e5007ba4bdead594a71e30cd58a # 79092e5007ba4bdead594a71e30cd58a
#: ../../contributing/stacks.md:92 bb7b1853818548e58aee02f6d9b52801 #: ../../contributing/stacks.md:92 39537f0c54a140fba52a17e74a4de963
msgid "Enter a description for your image." msgid "Enter a description for your image."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:93 22777374f90246e693f8305a49e8be32 #: ../../contributing/stacks.md:93 502b3baca67f4bc3bead7f72aad08505
msgid "" msgid ""
"Click **GitHub** under the **Build Settings** and follow the prompts to " "Click **GitHub** under the **Build Settings** and follow the prompts to "
"connect your account if it is not already connected." "connect your account if it is not already connected."
msgstr "" msgstr ""
# e085cfd6d7664d04bcd14ce89f24b75a # e085cfd6d7664d04bcd14ce89f24b75a
#: ../../contributing/stacks.md:94 9dd909bd515e44afaa51b86e208af06c #: ../../contributing/stacks.md:94 8cd69feca10342b082e3ffa365756531
msgid "" msgid ""
"Select the GitHub organization and repository containing your image " "Select the GitHub organization and repository containing your image "
"definition from the dropdowns." "definition from the dropdowns."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:95 173716294e2a4aeb8a638a957ad44c21 #: ../../contributing/stacks.md:95 36c799f13fe4421cab13f57df0a1dd3a
msgid "" msgid ""
"![Docker from GitHub automated build screenshot](../_static/docker-" "![Docker from GitHub automated build screenshot](../_static/docker-"
"github-settings.png)" "github-settings.png)"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:96 6e335c8fbfff4ff3a21be4c397ff102e #: ../../contributing/stacks.md:96 6fe8225f223642748101e2a42becd21b
msgid "Click the **Create and Build** button." msgid "Click the **Create and Build** button."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:98 722aea257bbd45bd9a90d022797b2d04 #: ../../contributing/stacks.md:98 ff46d994b8094fdc945fbfa04b2ab183
msgid "## Defining Your Image" msgid "## Defining Your Image"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:100 3227f738bbee4bc7ab0dedf653f628ba #: ../../contributing/stacks.md:100 34727a930d0c41969b2d2fd451295f73
msgid "" msgid ""
"Make edits the Dockerfile in your project to add third-party libraries " "Make edits the Dockerfile in your project to add third-party libraries "
"and configure Jupyter applications. Refer to the Dockerfiles for the core" "and configure Jupyter applications. Refer to the Dockerfiles for the core"
@@ -595,7 +736,7 @@ msgid ""
"feel for what's possible and best practices." "feel for what's possible and best practices."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:102 97514db155ce48038621542f715518c1 #: ../../contributing/stacks.md:102 39d833a10d1441ff8ab92e2ef863698b
msgid "" msgid ""
"[Submit pull requests](https://github.com/PointCloudLibrary/pcl/wiki/A" "[Submit pull requests](https://github.com/PointCloudLibrary/pcl/wiki/A"
"-step-by-step-guide-on-preparing-and-submitting-a-pull-request) to your " "-step-by-step-guide-on-preparing-and-submitting-a-pull-request) to your "
@@ -604,52 +745,52 @@ msgid ""
"master branch that you can `docker pull`." "master branch that you can `docker pull`."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:104 8dea5ac397874cfd987e004bc3bf24a9 #: ../../contributing/stacks.md:104 29eecce312564952a12c58e6baa76bcb
msgid "## Sharing Your Image" msgid "## Sharing Your Image"
msgstr "" msgstr ""
# d8e9f1a37f4c4a72bb630e7a3b265b92 # d8e9f1a37f4c4a72bb630e7a3b265b92
#: ../../contributing/stacks.md:106 d25799835eee4def88ffe2a0f447d4c9 #: ../../contributing/stacks.md:106 a067a1e9d7f24067b1b71efc316c5581
msgid "" msgid ""
"Finally, if you'd like to add a link to your project to this " "Finally, if you'd like to add a link to your project to this "
"documentation site, please do the following:" "documentation site, please do the following:"
msgstr "" msgstr ""
#: ../../contributing/stacks.md:108 2a745d58d4084227910e5e4d45ee139d #: ../../contributing/stacks.md:108 e5e3359d21684f2cae5e9b8c9ed985ec
msgid "" msgid ""
"Clone ths [jupyter/docker-stacks](https://github.com/jupyter/docker-" "Clone ths [jupyter/docker-stacks](https://github.com/jupyter/docker-"
"stacks) GitHub repository." "stacks) GitHub repository."
msgstr "" msgstr ""
#: ../../contributing/stacks.md:109 e0be278e7b874bd580e305e2f51e808a #: ../../contributing/stacks.md:109 c9d209061e8344c0a88a9de41f8c1ea1
msgid "" msgid ""
"Open the `docs/using/selecting.md` source file and locate the **Community" "Open the `docs/using/selecting.md` source file and locate the **Community"
" Stacks** section." " Stacks** section."
msgstr "" msgstr ""
# 9d37dfec6fba48e6966c254b476e1e81 # 9d37dfec6fba48e6966c254b476e1e81
#: ../../contributing/stacks.md:110 0fbbcb03a1604ae580867cde55c40d63 #: ../../contributing/stacks.md:110 7faf7108bf0f48e4878f50a5a2cec537
msgid "" msgid ""
"Add a bullet with a link to your project and a short description of what " "Add a bullet with a link to your project and a short description of what "
"your Docker image contains." "your Docker image contains."
msgstr "" msgstr ""
#: ../../contributing/tests.md:1 f91724f822e24fcba919e083b084ca45 #: ../../contributing/tests.md:1 c45ba83d713641b89d86ffa1301769d5
msgid "# Image Tests" msgid "# Image Tests"
msgstr "" msgstr ""
# 6dbd44985f3c4ba1a3823c90c5944ad0 # 6dbd44985f3c4ba1a3823c90c5944ad0
#: ../../contributing/tests.md:3 395ec2759b474c9f85f9ad3257698b96 #: ../../contributing/tests.md:3 b729f245588842a0b0aec7495e8362d5
msgid "" msgid ""
"We greatly appreciate pull requests that extend the automated tests that " "We greatly appreciate pull requests that extend the automated tests that "
"vet the basic functionality of the Docker images." "vet the basic functionality of the Docker images."
msgstr "" msgstr ""
#: ../../contributing/tests.md:5 b323f7a815d2454e83ed26d308216912 #: ../../contributing/tests.md:5 478d5e4939c24d1eae1c21dcf96005be
msgid "## How the Tests Work" msgid "## How the Tests Work"
msgstr "" msgstr ""
#: ../../contributing/tests.md:7 fcf6f9c0b04044bdbe2c7571af8d2b23 #: ../../contributing/tests.md:7 19e32ceec8ec4ef0b4c3a8ddfebce3dc
msgid "" msgid ""
"Travis executes `make build-test-all` against pull requests submitted to " "Travis executes `make build-test-all` against pull requests submitted to "
"the `jupyter/docker-stacks` repository. This `make` command builds every " "the `jupyter/docker-stacks` repository. This `make` command builds every "
@@ -664,49 +805,49 @@ msgid ""
"stacks/blob/master/conftest.py) file at the root of the projects." "stacks/blob/master/conftest.py) file at the root of the projects."
msgstr "" msgstr ""
#: ../../contributing/tests.md:9 c71863eb5bdb4854a39b34628d72dfd0 #: ../../contributing/tests.md:9 fae9f419beda411db77ee0e8e99befa5
msgid "## Contributing New Tests" msgid "## Contributing New Tests"
msgstr "" msgstr ""
# d317e6be0fbf487e8528ff1fe0bbdb78 # d317e6be0fbf487e8528ff1fe0bbdb78
#: ../../contributing/tests.md:11 470e47ae65fa4016aa0c1ae14e712ed6 #: ../../contributing/tests.md:11 15db53d9689c434cb30c1a79ff9e78f8
msgid "Please follow the process below to add new tests:" msgid "Please follow the process below to add new tests:"
msgstr "" msgstr ""
#: ../../contributing/tests.md:13 f4c00ca94aa94692b36ccb8f06206c47 #: ../../contributing/tests.md:13 49c48242ed034964829c4f04357083d5
msgid "" msgid ""
"If the test should run against every image built, add your test code to " "If the test should run against every image built, add your test code to "
"one of the modules in [test/](https://github.com/jupyter/docker-" "one of the modules in [test/](https://github.com/jupyter/docker-"
"stacks/tree/master/test) or create a new module." "stacks/tree/master/test) or create a new module."
msgstr "" msgstr ""
#: ../../contributing/tests.md:14 63ad10675b464777b040f97a4ed0a899 #: ../../contributing/tests.md:14 5224cd7b1ee243bda1f00a653e1cfd7c
msgid "" msgid ""
"If your test should run against a single image, add your test code to one" "If your test should run against a single image, add your test code to one"
" of the modules in `some-notebook/test/` or create a new module." " of the modules in `some-notebook/test/` or create a new module."
msgstr "" msgstr ""
#: ../../contributing/tests.md:18 b45d2bf2cf074d7bb93688eabfe0df6d #: ../../contributing/tests.md:18 6fac39aab4814bc9bc70d2a820d6125a
msgid "" msgid ""
"Build one or more images you intend to test and run the tests locally. If" "Build one or more images you intend to test and run the tests locally. If"
" you use `make`, call:" " you use `make`, call:"
msgstr "" msgstr ""
#: ../../contributing/tests.md:16 b6e3eea4174c46d49e686db36eba888f #: ../../contributing/tests.md:16 63873dc63c4f4ee99854f34d8a0be26f
msgid "```bash make build/somestack-notebook make test/somestack-notebook ```" msgid "```bash make build/somestack-notebook make test/somestack-notebook ```"
msgstr "" msgstr ""
#: ../../contributing/tests.md:22 f467f7df33474582a828db15ee7dc02f #: ../../contributing/tests.md:22 b3b48c0dffa248de8abbfbd25a02bba5
msgid "" msgid ""
"Discuss changes with the maintainers and address any issues running the " "Discuss changes with the maintainers and address any issues running the "
"tests on Travis." "tests on Travis."
msgstr "" msgstr ""
#: ../../contributing/translations.md:1 65ee5900baf24a08bd51bdc3e92ce7ba #: ../../contributing/translations.md:1 7de975a1fcd2429c8b25de5780152e4a
msgid "# Doc Translations" msgid "# Doc Translations"
msgstr "" msgstr ""
#: ../../contributing/translations.md:3 2b1fa2892ced4b9f89b04d4a6b318935 #: ../../contributing/translations.md:3 88ccce80ee8446549f6709441fd09504
msgid "" msgid ""
"We are delighted when members of the Jupyter community want to help " "We are delighted when members of the Jupyter community want to help "
"translate these documentation pages to other languages. If you're " "translate these documentation pages to other languages. If you're "
@@ -715,14 +856,14 @@ msgid ""
"updating translations of the Jupyter Docker Stacks documentation." "updating translations of the Jupyter Docker Stacks documentation."
msgstr "" msgstr ""
#: ../../contributing/translations.md:5 b7cca77b29a8449596dbf63616c7e904 #: ../../contributing/translations.md:5 897e68f9d1b8484fa1721c6672e5ec64
msgid "" msgid ""
"Follow the steps documented on the [Getting Started as a " "Follow the steps documented on the [Getting Started as a "
"Translator](https://docs.transifex.com/getting-started-1/translators) " "Translator](https://docs.transifex.com/getting-started-1/translators) "
"page." "page."
msgstr "" msgstr ""
#: ../../contributing/translations.md:6 b47cb99fb92a46feade7db04170c433b #: ../../contributing/translations.md:6 b929c4dfadf041d8ad27b5478e49cff0
msgid "" msgid ""
"Look for *jupyter-docker-stacks* when prompted to choose a translation " "Look for *jupyter-docker-stacks* when prompted to choose a translation "
"team. Alternatively, visit https://www.transifex.com/project-jupyter" "team. Alternatively, visit https://www.transifex.com/project-jupyter"
@@ -730,7 +871,7 @@ msgid ""
"the project." "the project."
msgstr "" msgstr ""
#: ../../contributing/translations.md:7 606cb04206b6458498fd573ced96e22c #: ../../contributing/translations.md:7 5f067106c7f04dfa869295f9b954df96
msgid "" msgid ""
"See [Translating with the Web " "See [Translating with the Web "
"Editor](https://docs.transifex.com/translation/translating-with-the-web-" "Editor](https://docs.transifex.com/translation/translating-with-the-web-"

View File

@@ -5,6 +5,9 @@ FROM $BASE_CONTAINER
LABEL maintainer="Jupyter Project <jupyter@googlegroups.com>" LABEL maintainer="Jupyter Project <jupyter@googlegroups.com>"
# Fix DL4006
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
USER root USER root
# Spark dependencies # Spark dependencies
@@ -16,13 +19,16 @@ RUN apt-get -y update && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
# Using the preferred mirror to download Spark # Using the preferred mirror to download Spark
RUN cd /tmp && \ WORKDIR /tmp
wget -q $(wget -qO- https://www.apache.org/dyn/closer.lua/spark/spark-${APACHE_SPARK_VERSION}/spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz\?as_json | \ # hadolint ignore=SC2046
RUN wget -q $(wget -qO- https://www.apache.org/dyn/closer.lua/spark/spark-${APACHE_SPARK_VERSION}/spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz\?as_json | \
python -c "import sys, json; content=json.load(sys.stdin); print(content['preferred']+content['path_info'])") && \ python -c "import sys, json; content=json.load(sys.stdin); print(content['preferred']+content['path_info'])") && \
echo "2426a20c548bdfc07df288cd1d18d1da6b3189d0b78dee76fa034c52a4e02895f0ad460720c526f163ba63a17efae4764c46a1cd8f9b04c60f9937a554db85d2 *spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz" | sha512sum -c - && \ echo "2426a20c548bdfc07df288cd1d18d1da6b3189d0b78dee76fa034c52a4e02895f0ad460720c526f163ba63a17efae4764c46a1cd8f9b04c60f9937a554db85d2 *spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz" | sha512sum -c - && \
tar xzf spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz -C /usr/local --owner root --group root --no-same-owner && \ tar xzf "spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz" -C /usr/local --owner root --group root --no-same-owner && \
rm spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz rm "spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz"
RUN cd /usr/local && ln -s spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION} spark
WORKDIR /usr/local
RUN ln -s "spark-${APACHE_SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}" spark
# Configure Spark # Configure Spark
ENV SPARK_HOME=/usr/local/spark ENV SPARK_HOME=/usr/local/spark
@@ -35,5 +41,7 @@ USER $NB_UID
# Install pyarrow # Install pyarrow
RUN conda install --quiet -y 'pyarrow' && \ RUN conda install --quiet -y 'pyarrow' && \
conda clean --all -f -y && \ conda clean --all -f -y && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"
WORKDIR $HOME

View File

@@ -47,7 +47,7 @@ RUN conda install --quiet --yes \
'unixodbc=2.3.*' \ 'unixodbc=2.3.*' \
&& \ && \
conda clean --all -f -y && \ conda clean --all -f -y && \
fix-permissions $CONDA_DIR fix-permissions "${CONDA_DIR}"
# Install e1071 R package (dependency of the caret R package) # Install e1071 R package (dependency of the caret R package)
RUN conda install --quiet --yes r-e1071 RUN conda install --quiet --yes r-e1071

View File

@@ -59,24 +59,25 @@ RUN conda install --quiet --yes \
jupyter lab build -y && \ jupyter lab build -y && \
jupyter lab clean -y && \ jupyter lab clean -y && \
npm cache clean --force && \ npm cache clean --force && \
rm -rf /home/$NB_USER/.cache/yarn && \ rm -rf "/home/${NB_USER}/.cache/yarn" && \
rm -rf /home/$NB_USER/.node-gyp && \ rm -rf "/home/${NB_USER}/.node-gyp" && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"
# Install facets which does not have a pip or conda package at the moment # Install facets which does not have a pip or conda package at the moment
RUN cd /tmp && \ WORKDIR /tmp
git clone https://github.com/PAIR-code/facets.git && \ RUN git clone https://github.com/PAIR-code/facets.git && \
cd facets && \ jupyter nbextension install facets/facets-dist/ --sys-prefix && \
jupyter nbextension install facets-dist/ --sys-prefix && \
cd && \
rm -rf /tmp/facets && \ rm -rf /tmp/facets && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"
# Import matplotlib the first time to build the font cache. # Import matplotlib the first time to build the font cache.
ENV XDG_CACHE_HOME /home/$NB_USER/.cache/ ENV XDG_CACHE_HOME="/home/${NB_USER}/.cache/"
RUN MPLBACKEND=Agg python -c "import matplotlib.pyplot" && \ RUN MPLBACKEND=Agg python -c "import matplotlib.pyplot" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"
USER $NB_UID USER $NB_UID
WORKDIR $HOME

View File

@@ -8,5 +8,5 @@ LABEL maintainer="Jupyter Project <jupyter@googlegroups.com>"
# Install Tensorflow # Install Tensorflow
RUN pip install --quiet --no-cache-dir \ RUN pip install --quiet --no-cache-dir \
'tensorflow==2.2.0' && \ 'tensorflow==2.2.0' && \
fix-permissions $CONDA_DIR && \ fix-permissions "${CONDA_DIR}" && \
fix-permissions /home/$NB_USER fix-permissions "/home/${NB_USER}"