diff --git a/base-notebook/Dockerfile b/base-notebook/Dockerfile index a780fb41..36b8f56e 100644 --- a/base-notebook/Dockerfile +++ b/base-notebook/Dockerfile @@ -17,24 +17,9 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] USER root -# ---- Miniforge installer ---- -# Default values can be overridden at build time -# (ARGS are in lower case to distinguish them from ENV) -# Check https://github.com/conda-forge/miniforge/releases -# Conda version -ARG conda_version="4.10.3" -# Miniforge installer patch version -ARG miniforge_patch_number="3" -# Package Manager and Python implementation to use (https://github.com/conda-forge/miniforge) -# - conda only: either Miniforge3 to use Python or Miniforge-pypy3 to use PyPy -# - conda + mamba: either Mambaforge to use Python or Mambaforge-pypy3 to use PyPy -ARG miniforge_python="Mambaforge" -# Miniforge archive to install -ARG miniforge_version="${conda_version}-${miniforge_patch_number}" - - # Install all OS dependencies for notebook server that starts but lacks all # features (e.g., download as all possible file formats) +# Install tini: init for containers ENV DEBIAN_FRONTEND noninteractive RUN apt-get update --yes && \ apt-get install --yes --no-install-recommends \ @@ -59,9 +44,7 @@ ENV CONDA_DIR=/opt/conda \ LANG=en_US.UTF-8 \ LANGUAGE=en_US.UTF-8 ENV PATH="${CONDA_DIR}/bin:${PATH}" \ - HOME="/home/${NB_USER}" \ - CONDA_VERSION="${conda_version}" \ - MINIFORGE_VERSION="${miniforge_version}" + HOME="/home/${NB_USER}" # Copy a script that we will use to correct permissions after running certain commands COPY fix-permissions /usr/local/bin/fix-permissions @@ -95,28 +78,25 @@ RUN mkdir "/home/${NB_USER}/work" && \ # Install conda as jovyan and check the sha256 sum provided on the download site WORKDIR /tmp -# Prerequisites installation: conda, mamba, pip, tini +# ---- Miniforge installer ---- +# Check https://github.com/conda-forge/miniforge/releases +# Package Manager and Python implementation to use (https://github.com/conda-forge/miniforge) +# We're using Mambaforge installer, possible options: +# - conda only: either Miniforge3 to use Python or Miniforge-pypy3 to use PyPy +# - conda + mamba: either Mambaforge to use Python or Mambaforge-pypy3 to use PyPy +# Installation: conda, mamba, pip RUN set -x && \ # Miniforge installer miniforge_arch=$(uname -m) && \ - export miniforge_arch && \ - if [ "$miniforge_arch" == "aarm64" ]; then \ - miniforge_arch="arm64"; \ - fi; \ - miniforge_installer="${miniforge_python}-${miniforge_version}-Linux-${miniforge_arch}.sh" && \ - export miniforge_installer && \ - wget --quiet "https://github.com/conda-forge/miniforge/releases/download/${miniforge_version}/${miniforge_installer}" && \ + miniforge_installer="Mambaforge-Linux-${miniforge_arch}.sh" && \ + wget --quiet "https://github.com/conda-forge/miniforge/releases/latest/download/${miniforge_installer}" && \ /bin/bash "${miniforge_installer}" -f -b -p "${CONDA_DIR}" && \ rm "${miniforge_installer}" && \ # Conda configuration see https://conda.io/projects/conda/en/latest/configuration.html - echo "conda ${CONDA_VERSION}" >> "${CONDA_DIR}/conda-meta/pinned" && \ conda config --system --set auto_update_conda false && \ conda config --system --set show_channel_urls true && \ if [[ "${PYTHON_VERSION}" != "default" ]]; then conda install --yes python="${PYTHON_VERSION}"; fi && \ conda list python | grep '^python ' | tr -s ' ' | cut -d ' ' -f 1,2 >> "${CONDA_DIR}/conda-meta/pinned" && \ - conda install --quiet --yes \ - "conda=${CONDA_VERSION}" \ - 'pip' && \ conda update --all --quiet --yes && \ conda clean --all -f -y && \ rm -rf "/home/${NB_USER}/.cache/yarn" && \