diff --git a/CUDA.md b/CUDA.md index 4f16e67fce19aeb816462102b5879581b4dc16d5..cb174b54c07143419254e2d297109a869a7f56b2 100644 --- a/CUDA.md +++ b/CUDA.md @@ -88,7 +88,7 @@ cd base && docker build \ --build-arg BASE_IMAGE=ubuntu \ --build-arg BASE_IMAGE_TAG=22.04 \ --build-arg BUILD_ON_IMAGE=glcr.b-data.ch/cuda/r/ver \ - --build-arg R_VERSION=4.4.1 \ + --build-arg R_VERSION=4.4.2 \ --build-arg CUDA_IMAGE_FLAVOR=devel \ -t jupyterlab/cuda/r/base \ -f latest.Dockerfile . @@ -224,7 +224,7 @@ docker run -it --rm \ **What makes this project different:** 1. Multi-arch: `linux/amd64`, `linux/arm64/v8` -1. Derived from [`nvidia/cuda:12.6.2-devel-ubuntu22.04`](https://hub.docker.com/r/nvidia/cuda/tags?page=1&name=12.6.2-devel-ubuntu22.04) +1. Derived from [`nvidia/cuda:12.8.0-devel-ubuntu22.04`](https://hub.docker.com/r/nvidia/cuda/tags?page=1&name=12.8.0-devel-ubuntu22.04) * including development libraries and headers 1. TensortRT and TensorRT plugin libraries * including development libraries and headers diff --git a/CUDA_VERSION_MATRIX.md b/CUDA_VERSION_MATRIX.md index 7b40fd0004f4309385d4596f9985d9ad2f707a9f..ef52e17d9092be1c4d219bb2afa50cb89b20593c 100644 --- a/CUDA_VERSION_MATRIX.md +++ b/CUDA_VERSION_MATRIX.md @@ -6,6 +6,7 @@ Topmost entry = Tag `latest` | R | Python | SAGA[^1] | CUDA | cuBLAS | cuDNN | NCCL | TensorRT[^2] | Linux distro | |:------|:--------|:---------|:-------|:----------|:----------|:-------|:------------------------|:-------------| +| 4.4.2 | 3.12.9 | 7.3.0 | 12.8.0 | 12.8.3.14 | 8.9.7.29 | 2.25.1 | 10.8.0.43/<br>10.3.0.26 | Ubuntu 22.04 | | 4.4.1 | 3.12.7 | 7.3.0 | 12.6.2 | 12.6.3.3 | 8.9.7.29 | 2.23.4 | 10.6.0.26/<br>10.3.0.26 | Ubuntu 22.04 | | 4.4.0 | 3.12.4 | 7.3.0 | 12.5.0 | 12.5.2.13 | 8.9.7.29 | 2.21.5 | 10.0.1.6 | Ubuntu 22.04 | | 4.3.3 | 3.11.9 | 7.3.0 | 11.8.0 | 11.11.3.6 | 8.9.6.50 | 2.15.5 | 8.5.3[^3] | Ubuntu 22.04 | @@ -23,6 +24,7 @@ Topmost entry = Tag `latest` | Python | CUDA | PyTorch[^4] | TensorFlow[^5] | |:-------|:-----|:---------------|:----------------------| +| 3.12 | 12.8 | version ≥ 2.2 | version ≥ 2.16 | | 3.12 | 12.6 | version ≥ 2.2 | version ≥ 2.16 | | 3.12 | 12.5 | version ≥ 2.2 | version ≥ 2.16 | | 3.11 | 11.8 | version ≥ 2.0 | 2.15 ≥ version > 2.12 | @@ -38,6 +40,8 @@ given. | CUDA | Linux driver version | Windows driver version[^6] | |:-------|:---------------------|:---------------------------| +| 12.8.0 | ≥ 570.26 | ≥ 570.65 | +| 12.6.3 | ≥ 560.35.05 | ≥ 561.17 | | 12.6.2 | ≥ 560.35.03 | ≥ 560.94 | | 12.5.0 | ≥ 555.42.02 | ≥ 555.85 | | 11.8.0 | ≥ 520.61.05 | ≥ 520.06 | @@ -53,6 +57,8 @@ Only works with | CUDA | Driver version 535[^7] | Driver version 470[^8] | |:-------|:----------------------:|:----------------------:| +| 12.8.0 | 🟢 | 🔵 | +| 12.6.3 | 🟢 | 🔵 | | 12.6.2 | 🟢 | 🔵 | | 12.5.0 | 🟢 | 🔵 | | 11.8.0 | 🟡 | 🟢 | diff --git a/NOTES.md b/NOTES.md index 19e70a1c490e4dc0c03857f38e2ea5f3aa69b57c..8469e7043109b253eb6afce039b5b0c5940e60d7 100644 --- a/NOTES.md +++ b/NOTES.md @@ -45,7 +45,7 @@ The following startup hooks are put in place: * set environment variables in `$(R RHOME)/etc/Renviron.site`. * put inital RStudio settings in place. * create user's working folder. -* [/usr/local/bin/before-notebook.d/70-qgis.sh](qgisprocess/scripts/usr/local/bin/before-notebook.d/70-qgis.sh) to +* [/usr/local/bin/before-notebook.d/70-qgis.sh](qgisprocess/scripts/usr/local/bin/before-notebook.d/70-qgis.sh) (qgisprocess images) to * put inital QGIS settings in place. * copy plugin 'Processing Saga NextGen Provider'. * [/usr/local/bin/before-notebook.d/71-tensorboard.sh](base/scripts/usr/local/bin/before-notebook.d/71-tensorboard.sh) @@ -172,6 +172,13 @@ are installed. * Application > Telemetry: Telemetry Level: off * Features > Terminal > Integrated: Font Family: MesloLGS NF * Workbench > Appearance > Color Theme: Default Dark+ +* [QGIS](qgisprocess/conf/user/var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini) (qgisprocess images): + * Append `/usr/lib/python3/dist-packages` to `PYTHONPATH`. + :information_source: One distro refused to find the Python bindings to QGIS + (at `/usr/lib/python3/dist-packages/qgis`)... Kept for backwards + compatibility. + * Set UI Theme to 'Night Mapping'. + * Set OTB application folder and OTB folder. * Zsh * Oh My Zsh: `~/.zshrc` * Set PATH so it includes user's private bin if it exists diff --git a/README.md b/README.md index 14320c416f4e1f94fdcdffbfb04ded0cca80acee..5f79f2f7829778fed9d37919aa0aaeab9bcc2890 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ To install docker, follow the instructions for your platform: ```bash cd base && docker build \ - --build-arg R_VERSION=4.4.1 \ + --build-arg R_VERSION=4.4.2 \ -t jupyterlab/r/base \ -f latest.Dockerfile . ``` @@ -352,6 +352,8 @@ b-data tailors the JupyterLab images to your needs, e.g. services on the intranet. * Setting up the necessary environment variables so that everything works behind a corporate proxy server. +* If supported by the NVIDIA GPU(s): Correctly handle CUDA forward compatibility + for GPU accelerated images. Additionally, the [JupyterHub](https://github.com/b-data/docker-deployment-jupyter) setup can be diff --git a/VERSION_MATRIX.md b/VERSION_MATRIX.md index 46e0b7907d6792fdc4b415d57c5894774f6c259d..bf56114c9c20948f2770929c9cd86e7fae23f3f9 100644 --- a/VERSION_MATRIX.md +++ b/VERSION_MATRIX.md @@ -8,6 +8,7 @@ Topmost entry = Tag `latest` | R | Python | Jupyter Hub | Jupyter Lab | code‑server (Code) | RStudio | Neovim | Git | Git LFS | Pandoc | CRAN date | Linux distro | |:------|:--------|:------------|:------------|:-------------------|:--------------|:-------|:-------|:--------|:-------|:-----------|:-------------| +| 4.4.2 | 3.12.9 | 5.2.1 | 4.3.5 | 4.97.2 (1.97.2) | 2024.12.1+563 | 0.10.4 | 2.48.1 | 3.6.1 | 3.4 | | Debian 12 | | 4.4.1 | 3.12.7 | 5.2.1 | 4.2.5 | 4.93.1 (1.93.1) | 2024.09.0+375 | 0.10.2 | 2.47.0 | 3.5.1 | 3.2 | 2024‑10‑31 | Debian 12 | | 4.4.0 | 3.12.4 | 5.0.0 | 4.2.2 | 4.90.0 (1.90.0) | 2024.04.2+764 | n/a | 2.45.2 | 3.5.1 | 3.1.11 | 2024‑06‑14 | Debian 12 | | 4.3.3 | 3.11.9 | 4.1.5 | 4.1.6 | 4.23.0 (1.88.0) | n/a | n/a | 2.44.0 | 3.5.1 | 3.1.11 | 2024‑04‑24 | Debian 12 | @@ -23,6 +24,7 @@ Topmost entry = Tag `latest` | R | CTAN date | Quarto | |:------|:-----------|:------------| +| 4.4.2 | | 1.6.42 | | 4.4.1 | 2024‑10‑31 | 1.5.57 | | 4.4.0 | 2024‑06‑14 | 1.4.555 | | 4.3.3 | 2024‑04‑24 | 1.4.553 | @@ -38,6 +40,7 @@ Topmost entry = Tag `latest` | R | QGIS | SAGA | OTB[^1] | |:------|:-------|:------|:--------| +| 4.4.2 | 3.40.3 | 9.1.3 | 9.1.0 | | 4.4.1 | 3.40.0 | 9.1.3 | 9.1.0 | | 4.4.0 | 3.36.3 | 9.1.3 | 9.0.0 | | 4.3.3 | 3.36.2 | 9.1.3 | 9.0.0 | diff --git a/base/.gitlab-ci.yml b/base/.gitlab-ci.yml index a17e7fae06ecd47950ec4ad257dd0993ba531de3..531608a1e097421145d69a9e99d51ce03795660e 100644 --- a/base/.gitlab-ci.yml +++ b/base/.gitlab-ci.yml @@ -1,6 +1,7 @@ .env: variables: - R_VERSION: "4.4.1" + R_VERSION: "4.4.2" + RSTUDIO_VERSION: "2024.12.1+563" TAG_VERSION_MAJ_MIN: "false" TAG_VERSION_MAJ: "false" @@ -67,6 +68,7 @@ build:latest-linux-amd64: --build-arg BASE_IMAGE_TAG --build-arg BUILD_ON_IMAGE --build-arg R_VERSION + --build-arg RSTUDIO_VERSION --build-arg CUDA_IMAGE_FLAVOR --build-arg CUDA_IMAGE_LICENSE --build-arg NCPUS=$((`nproc`/2+1)) @@ -114,6 +116,7 @@ build:latest-linux-arm64v8: --build-arg BASE_IMAGE_TAG --build-arg BUILD_ON_IMAGE --build-arg R_VERSION + --build-arg RSTUDIO_VERSION --build-arg CUDA_IMAGE_FLAVOR --build-arg CUDA_IMAGE_LICENSE --build-arg NCPUS=$((`nproc`/2+1)) diff --git a/base/conf/jupyter/etc/jupyter/jupyter_server_config.py b/base/conf/jupyter/etc/jupyter/jupyter_server_config.py index 5269c78f8a4d17a2df7249ef2a1e5925f18debab..6a5b9d43dcd912f6215ad6af52c5669bed82c730 100644 --- a/base/conf/jupyter/etc/jupyter/jupyter_server_config.py +++ b/base/conf/jupyter/etc/jupyter/jupyter_server_config.py @@ -10,8 +10,8 @@ from pathlib import Path from jupyter_core.paths import jupyter_data_dir c = get_config() # noqa: F821 # type: ignore -c.ServerApp.ip = "0.0.0.0" -c.ServerApp.port = 8888 +# Listen on all interfaces (IPv4 and IPv6) +c.ServerApp.ip = "" #c.ServerApp.open_browser = False # https://github.com/jupyter/notebook/issues/3130 diff --git a/base/latest.Dockerfile b/base/latest.Dockerfile index f21c4a68ddc69ec51c93a7f0f1f89dab5bde29bf..a13d719146c7eb35267f256e4c0f09a4693d7f08 100644 --- a/base/latest.Dockerfile +++ b/base/latest.Dockerfile @@ -7,14 +7,14 @@ ARG CUDA_IMAGE_FLAVOR ARG NB_USER=jovyan ARG NB_UID=1000 ARG JUPYTERHUB_VERSION=5.2.1 -ARG JUPYTERLAB_VERSION=4.2.5 +ARG JUPYTERLAB_VERSION=4.3.5 ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions -ARG CODE_SERVER_VERSION=4.93.1 -ARG RSTUDIO_VERSION=2024.09.0+375 -ARG NEOVIM_VERSION=0.10.2 -ARG GIT_VERSION=2.47.0 -ARG GIT_LFS_VERSION=3.5.1 -ARG PANDOC_VERSION=3.2 +ARG CODE_SERVER_VERSION=4.97.2 +ARG RSTUDIO_VERSION +ARG NEOVIM_VERSION=0.10.4 +ARG GIT_VERSION=2.48.1 +ARG GIT_LFS_VERSION=3.6.1 +ARG PANDOC_VERSION=3.4 FROM ${BUILD_ON_IMAGE}:${R_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMAGE_FLAVOR} AS files @@ -78,7 +78,18 @@ FROM glcr.b-data.ch/neovim/nvsi:${NEOVIM_VERSION} AS nvsi FROM glcr.b-data.ch/git/gsi/${GIT_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS gsi FROM glcr.b-data.ch/git-lfs/glfsi:${GIT_LFS_VERSION} AS glfsi -FROM ${BUILD_ON_IMAGE}:${R_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMAGE_FLAVOR} +FROM ${BUILD_ON_IMAGE}:${R_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMAGE_FLAVOR} AS base + +FROM ${BUILD_ON_IMAGE}:${R_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMAGE_FLAVOR} AS base-rstudio + +ARG RSTUDIO_VERSION + +ENV RSTUDIO_VERSION=${RSTUDIO_VERSION} + +## Connect to RStudio via unix socket +ENV JUPYTER_RSESSION_PROXY_USE_SOCKET=1 + +FROM base${RSTUDIO_VERSION:+-rstudio} ARG NCPUS=1 @@ -92,7 +103,6 @@ ARG JUPYTERHUB_VERSION ARG JUPYTERLAB_VERSION ARG CODE_BUILTIN_EXTENSIONS_DIR ARG CODE_SERVER_VERSION -ARG RSTUDIO_VERSION ARG NEOVIM_VERSION ARG GIT_VERSION ARG GIT_LFS_VERSION @@ -118,7 +128,6 @@ ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION}${CUDA_IMAGE_FLAVOR:+-}${CUDA_IMA JUPYTERHUB_VERSION=${JUPYTERHUB_VERSION} \ JUPYTERLAB_VERSION=${JUPYTERLAB_VERSION} \ CODE_SERVER_VERSION=${CODE_SERVER_VERSION} \ - RSTUDIO_VERSION=${RSTUDIO_VERSION} \ NEOVIM_VERSION=${NEOVIM_VERSION} \ GIT_VERSION=${GIT_VERSION} \ GIT_LFS_VERSION=${GIT_LFS_VERSION} \ @@ -410,6 +419,14 @@ RUN apt-get update \ >> $(which radian)_; \ echo "$(which radian) \"\${@}\"" >> $(which radian)_; \ fi \ + ## Install httpgd + ## Archived on 2025-02-14 as requires archived package 'unigd'. + && install2.r --error --skipinstalled -n $NCPUS \ + unigd \ + AsioHeaders \ + && curl -sLO https://cran.r-project.org/src/contrib/Archive/httpgd/httpgd_2.0.2.tar.gz \ + && R CMD INSTALL httpgd_2.0.2.tar.gz \ + && rm httpgd_2.0.2.tar.gz \ ## Install the R kernel for Jupyter, languageserver and httpgd && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \ IRkernel \ @@ -491,7 +508,10 @@ RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master COPY --from=files /files / COPY --from=files /files/var/backups/skel ${HOME} -EXPOSE 8888 +ARG JUPYTER_PORT=8888 +ENV JUPYTER_PORT=${JUPYTER_PORT} + +EXPOSE $JUPYTER_PORT ## Configure container startup ENTRYPOINT ["tini", "-g", "--", "start.sh"] diff --git a/base/scripts/usr/local/bin/before-notebook.d/12-r.sh b/base/scripts/usr/local/bin/before-notebook.d/12-r.sh index 0d6d1c6ab4b390962cd42cfe947231bac1340751..a11354a6749bf71aaaf2c2be484b00e4d00e8e04 100755 --- a/base/scripts/usr/local/bin/before-notebook.d/12-r.sh +++ b/base/scripts/usr/local/bin/before-notebook.d/12-r.sh @@ -5,6 +5,9 @@ set -e if [ "$(id -u)" == 0 ] ; then + if [ "${NB_USER}" = "root" ] && [ "${NB_UID}" = "$(id -u "${NB_USER}")" ] && [ "${NB_GID}" = "$(id -g "${NB_USER}")" ]; then + HOME="/home/root" + fi # Create user's R package library RLU=$(run_user_group Rscript -e "cat(Sys.getenv('R_LIBS_USER'))") run_user_group mkdir -p "$RLU" diff --git a/base/scripts/usr/local/bin/start-singleuser.sh b/base/scripts/usr/local/bin/start-singleuser.sh index 8d5ad1d157461cce6380ce4bd68424dac488426e..3fd42bf9c2cfdeae67fc01a23a6a7731b4a4d44f 100755 --- a/base/scripts/usr/local/bin/start-singleuser.sh +++ b/base/scripts/usr/local/bin/start-singleuser.sh @@ -4,10 +4,7 @@ set -e -# set default ip to 0.0.0.0 -if [[ "${NOTEBOOK_ARGS} $*" != *"--ip="* ]]; then - NOTEBOOK_ARGS="--ip=0.0.0.0 ${NOTEBOOK_ARGS}" -fi +# JupyterHub singleuser arguments are set using environment variables echo "Executing: jupyterhub-singleuser" "${NOTEBOOK_ARGS}" "$@" # shellcheck disable=SC1091,SC2086 diff --git a/base/scripts/usr/local/bin/start.sh b/base/scripts/usr/local/bin/start.sh index 4e3f0b4b9cc9145bcc997ae7621f24ec90b15fd1..7ecafe513c3f44e387cef4179d313e9eb2e9c7de 100755 --- a/base/scripts/usr/local/bin/start.sh +++ b/base/scripts/usr/local/bin/start.sh @@ -116,8 +116,8 @@ if [ "$(id -u)" == 0 ]; then userdel "${NB_USER}" useradd --no-log-init --home "/home/${NB_USER}${DOMAIN:+@$DOMAIN}" --shell "$(which zsh)" --uid "${NB_UID}" --gid "${NB_GID}" --groups 100 "${NB_USER}" else - # Otherwise, and if not the jovyan user, add it to the default group - if [[ "${NB_USER}" != "jovyan" ]]; then + # Otherwise, and if not jovyan or root, add it to the default group + if [[ "${NB_USER}" != "jovyan" && "${NB_USER}" != "root" ]]; then usermod -a -G 100 "${NB_USER}" fi fi diff --git a/common/subtags/devtools/latest.Dockerfile b/common/subtags/devtools/latest.Dockerfile index 26a19c6044e385c4beb794c509dfc6d6785cde59..c2716889fe43ea99babd2fb97721ab17e1fa40da 100644 --- a/common/subtags/devtools/latest.Dockerfile +++ b/common/subtags/devtools/latest.Dockerfile @@ -3,7 +3,7 @@ ARG BASE_IMAGE_TAG=12 ARG BUILD_ON_IMAGE ARG R_VERSION -ARG NODE_VERSION=20.18.0 +ARG NODE_VERSION=20.18.1 ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi diff --git a/geospatial/.gitlab-ci.yml b/geospatial/.gitlab-ci.yml index 2729cfdb618fda6cf246cb4aad9110d8a83a75aa..e3a2aa30c28c4843ae7e3c90578a76d21b937254 100644 --- a/geospatial/.gitlab-ci.yml +++ b/geospatial/.gitlab-ci.yml @@ -1,6 +1,6 @@ .env: variables: - R_VERSION: "4.4.1" + R_VERSION: "4.4.2" TAG_VERSION_MAJ_MIN: "false" TAG_VERSION_MAJ: "false" diff --git a/qgisprocess/.gitlab-ci.yml b/qgisprocess/.gitlab-ci.yml index 3bb7ca343beff57aed0f21bf760812c893d9d4a7..d73f90427bbbab4c2d1894886773849244feb9b9 100644 --- a/qgisprocess/.gitlab-ci.yml +++ b/qgisprocess/.gitlab-ci.yml @@ -1,7 +1,7 @@ .env: variables: - R_VERSION: "4.4.1" - QGIS_VERSION: "3.40.0" + R_VERSION: "4.4.2" + QGIS_VERSION: "3.42.0" OTB_VERSION: "9.1.0" TAG_VERSION_MAJ_MIN: "false" TAG_VERSION_MAJ: "false" diff --git a/qgisprocess/latest.Dockerfile b/qgisprocess/latest.Dockerfile index 9e661e02f6490ef1c66f1e8dc3c957055a38f6bf..8a8f1f4e02c36b20cae16f0621e7920359e6d1a6 100644 --- a/qgisprocess/latest.Dockerfile +++ b/qgisprocess/latest.Dockerfile @@ -209,15 +209,6 @@ RUN apt-get update \ && apt-get -y install --no-install-recommends python3-pip \ && export PIP_BREAK_SYSTEM_PACKAGES=1 \ && /usr/bin/pip install qgis-plugin-manager \ - ## QGIS: Make sure qgis_mapserver and qgis_process find the qgis module - && cp -a $(which qgis_mapserver) $(which qgis_mapserver)_ \ - && echo '#!/bin/bash' > $(which qgis_mapserver) \ - && echo "PYTHONPATH=/usr/lib/python3/dist-packages $(which qgis_mapserver)_ \"\${@}\"" >> \ - $(which qgis_mapserver) \ - && cp -a $(which qgis_process) $(which qgis_process)_ \ - && echo '#!/bin/bash' > $(which qgis_process) \ - && echo "PYTHONPATH=/usr/lib/python3/dist-packages $(which qgis_process)_ \"\${@}\"" >> \ - $(which qgis_process) \ ## Install qgisprocess, the R interface to QGIS && install2.r --error --skipinstalled -n $NCPUS qgisprocess \ ## Strip libraries of binary packages installed from P3M diff --git a/tidyverse/.gitlab-ci.yml b/tidyverse/.gitlab-ci.yml index a22c34acd7656787168fcc1551a7acf0c676823a..d4c053440621f6a5fde70e653d189fe44737672b 100644 --- a/tidyverse/.gitlab-ci.yml +++ b/tidyverse/.gitlab-ci.yml @@ -1,6 +1,6 @@ .env: variables: - R_VERSION: "4.4.1" + R_VERSION: "4.4.2" TAG_VERSION_MAJ_MIN: "false" TAG_VERSION_MAJ: "false" diff --git a/verse/.gitlab-ci.yml b/verse/.gitlab-ci.yml index 2385b996518eb07900578afd60135865bcc36b8e..aa6685814578c07e39ff85532b2f01497cb80600 100644 --- a/verse/.gitlab-ci.yml +++ b/verse/.gitlab-ci.yml @@ -1,6 +1,6 @@ .env: variables: - R_VERSION: "4.4.1" + R_VERSION: "4.4.2" CTAN_REPO_BUILD_LATEST: "https://mirror.init7.net/ctan/systems/texlive/tlnet" TAG_VERSION_MAJ_MIN: "false" TAG_VERSION_MAJ: "false" diff --git a/verse/latest.Dockerfile b/verse/latest.Dockerfile index 59347c55a2dbe3eac2d2fee0ee30fb193e850b27..897e86a90635fcdaf5a3f17ae330884483e7d439 100644 --- a/verse/latest.Dockerfile +++ b/verse/latest.Dockerfile @@ -1,7 +1,7 @@ ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/tidyverse ARG R_VERSION ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions -ARG QUARTO_VERSION=1.5.57 +ARG QUARTO_VERSION=1.6.42 ARG CTAN_REPO=https://mirror.ctan.org/systems/texlive/tlnet FROM ${BUILD_ON_IMAGE}:${R_VERSION} @@ -76,6 +76,9 @@ RUN dpkgArch="$(dpkg --print-architecture)" \ && mkdir -p /opt/quarto \ && tar -xzf quarto-${QUARTO_VERSION}-linux-${dpkgArch}.tar.gz -C /opt/quarto --no-same-owner --strip-components=1 \ && rm quarto-${QUARTO_VERSION}-linux-${dpkgArch}.tar.gz \ + ## Exempt quarto from address space limit + && sed -i 's/"${QUARTO_DENO}"/prlimit -v=unlimited: "${QUARTO_DENO}"/g' \ + /opt/quarto/bin/quarto \ ## Remove quarto pandoc && rm /opt/quarto/bin/tools/$(uname -m)/pandoc \ ## Link to system pandoc @@ -151,6 +154,7 @@ RUN dpkgArch="$(dpkg --print-architecture)" \ ## and their dependencies (incl. python3) && apt-get -y autoremove \ && apt-get -y install --no-install-recommends \ + '^libmagick\+\+-6.q16-[0-9]+$' \ imagemagick \ ## Install code-server extensions && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension quarto.quarto \