mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-18 15:32:56 +00:00
Merge branch 'master' into asalikhov/ubuntu_jammy
This commit is contained in:
14
.github/pull_request_template.md
vendored
Normal file
14
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
## Describe your changes
|
||||||
|
|
||||||
|
## Issue ticket if applicable
|
||||||
|
|
||||||
|
<!-- Example - Fix: https://github.com/jupyter/docker-stacks/issues/0 -->
|
||||||
|
|
||||||
|
## Checklist (especially for first-time contributors)
|
||||||
|
|
||||||
|
- [ ] I have performed a self-review of my code
|
||||||
|
- [ ] If it is a core feature, I have added thorough tests
|
||||||
|
- [ ] I will try not to use force-push to make the review process easier for reviewers
|
||||||
|
- [ ] I have updated the documentation for significant changes
|
||||||
|
|
||||||
|
<!-- markdownlint-disable-file MD041 -->
|
14
.github/workflows/docker.yml
vendored
14
.github/workflows/docker.yml
vendored
@@ -67,10 +67,10 @@ jobs:
|
|||||||
# https://github.com/docker/build-push-action/tree/master#usage
|
# https://github.com/docker/build-push-action/tree/master#usage
|
||||||
# https://github.com/docker/build-push-action/blob/master/docs/advanced/multi-platform.md
|
# https://github.com/docker/build-push-action/blob/master/docs/advanced/multi-platform.md
|
||||||
- name: Set up QEMU (for docker buildx) 🐳
|
- name: Set up QEMU (for docker buildx) 🐳
|
||||||
uses: docker/setup-qemu-action@27d0a4f181a40b142cce983c5393082c365d1480 # dependabot updates to latest release
|
uses: docker/setup-qemu-action@8b122486cedac8393e77aa9734c3528886e4a1a8 # dependabot updates to latest release
|
||||||
|
|
||||||
- name: Set up Docker Buildx (for multi-arch builds) 🐳
|
- name: Set up Docker Buildx (for multi-arch builds) 🐳
|
||||||
uses: docker/setup-buildx-action@94ab11c41e45d028884a99163086648e898eed25 # dependabot updates to latest release
|
uses: docker/setup-buildx-action@dc7b9719a96d48369863986a06765841d7ea23f6 # dependabot updates to latest release
|
||||||
|
|
||||||
- name: Checkout Repo ⚡️
|
- name: Checkout Repo ⚡️
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@@ -97,7 +97,7 @@ jobs:
|
|||||||
- name: Checkout Wiki Repo 📃
|
- name: Checkout Wiki Repo 📃
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: ${{github.repository}}.wiki
|
repository: ${{ github.repository }}.wiki
|
||||||
path: wiki/
|
path: wiki/
|
||||||
|
|
||||||
- name: Create tags and manifest 🏷
|
- name: Create tags and manifest 🏷
|
||||||
@@ -107,15 +107,15 @@ jobs:
|
|||||||
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.event_name == 'schedule'
|
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.event_name == 'schedule'
|
||||||
uses: stefanzweifel/git-auto-commit-action@49620cd3ed21ee620a48530e81dba0d139c9cb80 # dependabot updates to latest release
|
uses: stefanzweifel/git-auto-commit-action@49620cd3ed21ee620a48530e81dba0d139c9cb80 # dependabot updates to latest release
|
||||||
with:
|
with:
|
||||||
commit_message: "Automated wiki publish for ${{github.sha}}"
|
commit_message: "Automated wiki publish for ${{ github.sha }}"
|
||||||
repository: wiki/
|
repository: wiki/
|
||||||
|
|
||||||
- name: Login to Docker Hub 🔐
|
- name: Login to Docker Hub 🔐
|
||||||
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.event_name == 'schedule'
|
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.event_name == 'schedule'
|
||||||
uses: docker/login-action@dd4fa0671be5250ee6f50aedf4cb05514abda2c7 # dependabot updates to latest release
|
uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b # dependabot updates to latest release
|
||||||
with:
|
with:
|
||||||
username: ${{secrets.DOCKERHUB_USERNAME}}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{secrets.DOCKERHUB_TOKEN}}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Push Images to Docker Hub 📤
|
- name: Push Images to Docker Hub 📤
|
||||||
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.event_name == 'schedule'
|
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.event_name == 'schedule'
|
||||||
|
4
.github/workflows/hub-overview.yml
vendored
4
.github/workflows/hub-overview.yml
vendored
@@ -34,8 +34,8 @@ jobs:
|
|||||||
- name: push README to Dockerhub for base-notebook 🐳
|
- name: push README to Dockerhub for base-notebook 🐳
|
||||||
uses: christian-korneck/update-container-description-action@d36005551adeaba9698d8d67a296bd16fa91f8e8 # dependabot updates to latest release
|
uses: christian-korneck/update-container-description-action@d36005551adeaba9698d8d67a296bd16fa91f8e8 # dependabot updates to latest release
|
||||||
env:
|
env:
|
||||||
DOCKER_USER: ${{secrets.DOCKERHUB_USERNAME}}
|
DOCKER_USER: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
DOCKER_PASS: ${{secrets.DOCKERHUB_TOKEN}}
|
DOCKER_PASS: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
destination_container_repo: jupyter/base-notebook
|
destination_container_repo: jupyter/base-notebook
|
||||||
provider: dockerhub
|
provider: dockerhub
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
repos:
|
repos:
|
||||||
# Autoupdate: Python code
|
# Autoupdate: Python code
|
||||||
- repo: https://github.com/asottile/pyupgrade
|
- repo: https://github.com/asottile/pyupgrade
|
||||||
rev: v2.32.0
|
rev: v2.32.1
|
||||||
hooks:
|
hooks:
|
||||||
- id: pyupgrade
|
- id: pyupgrade
|
||||||
args: [--py39-plus]
|
args: [--py39-plus]
|
||||||
@@ -35,7 +35,7 @@ repos:
|
|||||||
|
|
||||||
# Check python code static typing
|
# Check python code static typing
|
||||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||||
rev: v0.942
|
rev: v0.950
|
||||||
hooks:
|
hooks:
|
||||||
- id: mypy
|
- id: mypy
|
||||||
args: [--config, ./mypy.ini]
|
args: [--config, ./mypy.ini]
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
<!-- markdownlint-disable MD041 -->
|
|
||||||
|
|
||||||
Thanks for contributing! Please see the
|
Thanks for contributing! Please see the
|
||||||
**Contributor Guide** section in [the documentation](https://jupyter-docker-stacks.readthedocs.io/en/latest/) for
|
**Contributor Guide** section in [the documentation](https://jupyter-docker-stacks.readthedocs.io/en/latest/) for
|
||||||
information about how to contribute
|
information about how to contribute
|
||||||
@@ -8,3 +6,5 @@ information about how to contribute
|
|||||||
[tests](https://jupyter-docker-stacks.readthedocs.io/en/latest/contributing/tests.html),
|
[tests](https://jupyter-docker-stacks.readthedocs.io/en/latest/contributing/tests.html),
|
||||||
[features](https://jupyter-docker-stacks.readthedocs.io/en/latest/contributing/features.html),
|
[features](https://jupyter-docker-stacks.readthedocs.io/en/latest/contributing/features.html),
|
||||||
[community-maintained stacks](https://jupyter-docker-stacks.readthedocs.io/en/latest/contributing/stacks.html).
|
[community-maintained stacks](https://jupyter-docker-stacks.readthedocs.io/en/latest/contributing/stacks.html).
|
||||||
|
|
||||||
|
<!-- markdownlint-disable-file MD041 -->
|
||||||
|
@@ -27,7 +27,13 @@ RUN apt-get update --yes && \
|
|||||||
USER ${NB_UID}
|
USER ${NB_UID}
|
||||||
|
|
||||||
# R packages including IRKernel which gets installed globally.
|
# R packages including IRKernel which gets installed globally.
|
||||||
RUN mamba install --quiet --yes \
|
RUN arch=$(uname -m) && \
|
||||||
|
if [ "${arch}" == "aarch64" ]; then \
|
||||||
|
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
||||||
|
# <https://github.com/mamba-org/mamba/issues/1611>
|
||||||
|
export G_SLICE=always-malloc; \
|
||||||
|
fi && \
|
||||||
|
mamba install --quiet --yes \
|
||||||
'r-base' \
|
'r-base' \
|
||||||
'r-ggplot2' \
|
'r-ggplot2' \
|
||||||
'r-irkernel' \
|
'r-irkernel' \
|
||||||
|
@@ -119,7 +119,8 @@ RUN set -x && \
|
|||||||
if [ "${arch}" == "aarch64" ]; then \
|
if [ "${arch}" == "aarch64" ]; then \
|
||||||
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
||||||
# <https://github.com/mamba-org/mamba/issues/1611>
|
# <https://github.com/mamba-org/mamba/issues/1611>
|
||||||
./micromamba config set extract_threads 1; \
|
# We don't use `micromamba config set` since it instead modifies ~/.condarc.
|
||||||
|
echo "extract_threads: 1" >> "${CONDA_DIR}/.condarc"; \
|
||||||
fi && \
|
fi && \
|
||||||
# Install the packages
|
# Install the packages
|
||||||
./micromamba install \
|
./micromamba install \
|
||||||
@@ -165,7 +166,8 @@ RUN sed -re "s/c.ServerApp/c.NotebookApp/g" \
|
|||||||
# This healtcheck works well for `lab`, `notebook`, `nbclassic`, `server` and `retro` jupyter commands
|
# This healtcheck works well for `lab`, `notebook`, `nbclassic`, `server` and `retro` jupyter commands
|
||||||
# https://github.com/jupyter/docker-stacks/issues/915#issuecomment-1068528799
|
# https://github.com/jupyter/docker-stacks/issues/915#issuecomment-1068528799
|
||||||
HEALTHCHECK --interval=15s --timeout=3s --start-period=5s --retries=3 \
|
HEALTHCHECK --interval=15s --timeout=3s --start-period=5s --retries=3 \
|
||||||
CMD wget -O- --no-verbose --tries=1 http://localhost:8888${JUPYTERHUB_SERVICE_PREFIX:-/}api || exit 1
|
CMD wget -O- --no-verbose --tries=1 --no-check-certificate \
|
||||||
|
http${GEN_CERT:+s}://localhost:8888${JUPYTERHUB_SERVICE_PREFIX:-/}api || exit 1
|
||||||
|
|
||||||
# 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}
|
||||||
|
@@ -61,7 +61,13 @@ USER ${NB_UID}
|
|||||||
|
|
||||||
# R packages including IRKernel which gets installed globally.
|
# R packages including IRKernel which gets installed globally.
|
||||||
# r-e1071: dependency of the caret R package
|
# r-e1071: dependency of the caret R package
|
||||||
RUN mamba install --quiet --yes \
|
RUN arch=$(uname -m) && \
|
||||||
|
if [ "${arch}" == "aarch64" ]; then \
|
||||||
|
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
||||||
|
# <https://github.com/mamba-org/mamba/issues/1611>
|
||||||
|
export G_SLICE=always-malloc; \
|
||||||
|
fi && \
|
||||||
|
mamba install --quiet --yes \
|
||||||
'r-base' \
|
'r-base' \
|
||||||
'r-caret' \
|
'r-caret' \
|
||||||
'r-crayon' \
|
'r-crayon' \
|
||||||
@@ -75,23 +81,23 @@ RUN mamba install --quiet --yes \
|
|||||||
'r-nycflights13' \
|
'r-nycflights13' \
|
||||||
'r-randomforest' \
|
'r-randomforest' \
|
||||||
'r-rcurl' \
|
'r-rcurl' \
|
||||||
|
'r-rmarkdown' \
|
||||||
'r-rodbc' \
|
'r-rodbc' \
|
||||||
'r-rsqlite' \
|
'r-rsqlite' \
|
||||||
'r-shiny' \
|
'r-shiny' \
|
||||||
|
'r-tidyverse' \
|
||||||
'rpy2' \
|
'rpy2' \
|
||||||
'unixodbc' && \
|
'unixodbc' && \
|
||||||
mamba clean --all -f -y && \
|
mamba clean --all -f -y && \
|
||||||
fix-permissions "${CONDA_DIR}" && \
|
fix-permissions "${CONDA_DIR}" && \
|
||||||
fix-permissions "/home/${NB_USER}"
|
fix-permissions "/home/${NB_USER}"
|
||||||
|
|
||||||
# These packages are not easy to install under arm
|
# `r-tidymodels` is not easy to install under arm
|
||||||
RUN set -x && \
|
RUN set -x && \
|
||||||
arch=$(uname -m) && \
|
arch=$(uname -m) && \
|
||||||
if [ "${arch}" == "x86_64" ]; then \
|
if [ "${arch}" == "x86_64" ]; then \
|
||||||
mamba install --quiet --yes \
|
mamba install --quiet --yes \
|
||||||
'r-rmarkdown' \
|
'r-tidymodels' && \
|
||||||
'r-tidymodels' \
|
|
||||||
'r-tidyverse' && \
|
|
||||||
mamba clean --all -f -y && \
|
mamba clean --all -f -y && \
|
||||||
fix-permissions "${CONDA_DIR}" && \
|
fix-permissions "${CONDA_DIR}" && \
|
||||||
fix-permissions "/home/${NB_USER}"; \
|
fix-permissions "/home/${NB_USER}"; \
|
||||||
|
@@ -61,7 +61,13 @@ RUN fix-permissions "/etc/ipython/"
|
|||||||
USER ${NB_UID}
|
USER ${NB_UID}
|
||||||
|
|
||||||
# Install pyarrow
|
# Install pyarrow
|
||||||
RUN mamba install --quiet --yes \
|
RUN arch=$(uname -m) && \
|
||||||
|
if [ "${arch}" == "aarch64" ]; then \
|
||||||
|
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
||||||
|
# <https://github.com/mamba-org/mamba/issues/1611>
|
||||||
|
export G_SLICE=always-malloc; \
|
||||||
|
fi && \
|
||||||
|
mamba install --quiet --yes \
|
||||||
'pyarrow' && \
|
'pyarrow' && \
|
||||||
mamba clean --all -f -y && \
|
mamba clean --all -f -y && \
|
||||||
fix-permissions "${CONDA_DIR}" && \
|
fix-permissions "${CONDA_DIR}" && \
|
||||||
|
@@ -27,7 +27,13 @@ USER ${NB_UID}
|
|||||||
|
|
||||||
# R packages including IRKernel which gets installed globally.
|
# R packages including IRKernel which gets installed globally.
|
||||||
# r-e1071: dependency of the caret R package
|
# r-e1071: dependency of the caret R package
|
||||||
RUN mamba install --quiet --yes \
|
RUN arch=$(uname -m) && \
|
||||||
|
if [ "${arch}" == "aarch64" ]; then \
|
||||||
|
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
||||||
|
# <https://github.com/mamba-org/mamba/issues/1611>
|
||||||
|
export G_SLICE=always-malloc; \
|
||||||
|
fi && \
|
||||||
|
mamba install --quiet --yes \
|
||||||
'r-base' \
|
'r-base' \
|
||||||
'r-caret' \
|
'r-caret' \
|
||||||
'r-crayon' \
|
'r-crayon' \
|
||||||
@@ -52,7 +58,6 @@ RUN mamba install --quiet --yes \
|
|||||||
fix-permissions "/home/${NB_USER}"
|
fix-permissions "/home/${NB_USER}"
|
||||||
|
|
||||||
# `r-tidymodels` is not easy to install under arm
|
# `r-tidymodels` is not easy to install under arm
|
||||||
# hadolint ignore=SC2039
|
|
||||||
RUN set -x && \
|
RUN set -x && \
|
||||||
arch=$(uname -m) && \
|
arch=$(uname -m) && \
|
||||||
if [ "${arch}" == "x86_64" ]; then \
|
if [ "${arch}" == "x86_64" ]; then \
|
||||||
|
@@ -26,7 +26,13 @@ RUN apt-get update --yes && \
|
|||||||
USER ${NB_UID}
|
USER ${NB_UID}
|
||||||
|
|
||||||
# Install Python 3 packages
|
# Install Python 3 packages
|
||||||
RUN mamba install --quiet --yes \
|
RUN arch=$(uname -m) && \
|
||||||
|
if [ "${arch}" == "aarch64" ]; then \
|
||||||
|
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
||||||
|
# <https://github.com/mamba-org/mamba/issues/1611>
|
||||||
|
export G_SLICE=always-malloc; \
|
||||||
|
fi && \
|
||||||
|
mamba install --quiet --yes \
|
||||||
'altair' \
|
'altair' \
|
||||||
'beautifulsoup4' \
|
'beautifulsoup4' \
|
||||||
'bokeh' \
|
'bokeh' \
|
||||||
|
@@ -11,7 +11,13 @@ LABEL maintainer="Jupyter Project <jupyter@googlegroups.com>"
|
|||||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
# Install Tensorflow
|
# Install Tensorflow
|
||||||
RUN mamba install --quiet --yes \
|
RUN arch=$(uname -m) && \
|
||||||
|
if [ "${arch}" == "aarch64" ]; then \
|
||||||
|
# Prevent libmamba from sporadically hanging on arm64 under QEMU
|
||||||
|
# <https://github.com/mamba-org/mamba/issues/1611>
|
||||||
|
export G_SLICE=always-malloc; \
|
||||||
|
fi && \
|
||||||
|
mamba install --quiet --yes \
|
||||||
'tensorflow' && \
|
'tensorflow' && \
|
||||||
mamba clean --all -f -y && \
|
mamba clean --all -f -y && \
|
||||||
fix-permissions "${CONDA_DIR}" && \
|
fix-permissions "${CONDA_DIR}" && \
|
||||||
|
@@ -10,12 +10,9 @@ LOGGER = logging.getLogger(__name__)
|
|||||||
def test_julia(container: TrackedContainer) -> None:
|
def test_julia(container: TrackedContainer) -> None:
|
||||||
"""Basic julia test"""
|
"""Basic julia test"""
|
||||||
LOGGER.info("Test that julia is correctly installed ...")
|
LOGGER.info("Test that julia is correctly installed ...")
|
||||||
running_container = container.run_detached(
|
logs = container.run_and_wait(
|
||||||
|
timeout=5,
|
||||||
tty=True,
|
tty=True,
|
||||||
command=["start.sh", "bash", "-c", "sleep infinity"],
|
command=["start.sh", "bash", "-c", "julia --version"],
|
||||||
)
|
)
|
||||||
command = "julia --version"
|
LOGGER.debug(logs)
|
||||||
cmd = running_container.exec_run(command)
|
|
||||||
output = cmd.output.decode("utf-8")
|
|
||||||
LOGGER.debug(output)
|
|
||||||
assert cmd.exit_code == 0, f"Command {command} failed {output}"
|
|
||||||
|
Reference in New Issue
Block a user