ARG RELEASE |
ARG LAUNCHPAD_BUILD_ARCH |
LABEL org.opencontainers.image.ref.name=ubuntu |
LABEL org.opencontainers.image.version=22.04 |
ADD file:99224b1f237763b3053ca27ea5641f9a801c21154c7ccbff2c099654cc6db942 in / |
CMD ["/bin/bash"] |
LABEL maintainer=Jupyter Project <jupyter@googlegroups.com> |
ARG NB_USER=jovyan |
ARG NB_UID=1000 |
ARG NB_GID=100 |
SHELL [/bin/bash -o pipefail -c] |
USER root |
ENV DEBIAN_FRONTEND=noninteractive |
RUN |3 NB_USER=jovyan NB_UID=1000 NB_GID=100 /bin/bash -o pipefail -c apt-get update --yes && apt-get upgrade --yes && apt-get install --yes --no-install-recommends bzip2 ca-certificates locales sudo tini wget && apt-get clean && rm -rf /var/lib/apt/lists/* && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen # buildkit |
ENV CONDA_DIR=/opt/conda SHELL=/bin/bash NB_USER=jovyan NB_UID=1000 NB_GID=100 LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 |
ENV PATH=/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/home/jovyan |
COPY fix-permissions /usr/local/bin/fix-permissions # buildkit |
RUN |3 NB_USER=jovyan NB_UID=1000 NB_GID=100 /bin/bash -o pipefail -c chmod a+rx /usr/local/bin/fix-permissions # buildkit |
RUN |3 NB_USER=jovyan NB_UID=1000 NB_GID=100 /bin/bash -o pipefail -c sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' /etc/skel/.bashrc && echo 'eval "$(conda shell.bash hook)"' >> /etc/skel/.bashrc # buildkit |
RUN |3 NB_USER=jovyan NB_UID=1000 NB_GID=100 /bin/bash -o pipefail -c echo "auth requisite pam_deny.so" >> /etc/pam.d/su && sed -i.bak -e 's/^%admin/#%admin/' /etc/sudoers && sed -i.bak -e 's/^%sudo/#%sudo/' /etc/sudoers && useradd --no-log-init --create-home --shell /bin/bash --uid "${NB_UID}" --no-user-group "${NB_USER}" && mkdir -p "${CONDA_DIR}" && chown "${NB_USER}:${NB_GID}" "${CONDA_DIR}" && chmod g+w /etc/passwd && fix-permissions "${CONDA_DIR}" && fix-permissions "/home/${NB_USER}" # buildkit |
USER 1000 |
ARG PYTHON_VERSION=3.11 |
RUN |4 NB_USER=jovyan NB_UID=1000 NB_GID=100 PYTHON_VERSION=3.11 /bin/bash -o pipefail -c mkdir "/home/${NB_USER}/work" && fix-permissions "/home/${NB_USER}" # buildkit |
COPY initial-condarc /opt/conda/.condarc # buildkit |
WORKDIR /tmp |
RUN |4 NB_USER=jovyan NB_UID=1000 NB_GID=100 PYTHON_VERSION=3.11 /bin/bash -o pipefail -c set -x && arch=$(uname -m) && if [ "${arch}" = "x86_64" ]; then arch="64"; fi && wget --progress=dot:giga -O - "https://micro.mamba.pm/api/micromamba/linux-${arch}/latest" | tar -xvj bin/micromamba && PYTHON_SPECIFIER="python=${PYTHON_VERSION}" && if [[ "${PYTHON_VERSION}" == "default" ]]; then PYTHON_SPECIFIER="python"; fi && ./bin/micromamba install --root-prefix="${CONDA_DIR}" --prefix="${CONDA_DIR}" --yes "${PYTHON_SPECIFIER}" 'mamba' 'jupyter_core' && rm -rf /tmp/bin/ && mamba list --full-name 'python' | tail -1 | tr -s ' ' | cut -d ' ' -f 1,2 | sed 's/\.[^.]*$/.*/' >> "${CONDA_DIR}/conda-meta/pinned" && mamba clean --all -f -y && fix-permissions "${CONDA_DIR}" && fix-permissions "/home/${NB_USER}" # buildkit |
COPY run-hooks.sh start.sh /usr/local/bin/ # buildkit |
ENTRYPOINT ["tini" "-g" "--" "start.sh"] |
USER root |
RUN |4 NB_USER=jovyan NB_UID=1000 NB_GID=100 PYTHON_VERSION=3.11 /bin/bash -o pipefail -c mkdir /usr/local/bin/start-notebook.d && mkdir /usr/local/bin/before-notebook.d # buildkit |
COPY 10activate-conda-env.sh /usr/local/bin/before-notebook.d/ # buildkit |
USER 1000 |
WORKDIR /home/jovyan |
LABEL maintainer=Jupyter Project <jupyter@googlegroups.com> |
SHELL [/bin/bash -o pipefail -c] |
USER root |
RUN /bin/bash -o pipefail -c apt-get update --yes && apt-get install --yes --no-install-recommends fonts-liberation pandoc run-one && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit |
USER 1000 |
WORKDIR /tmp |
RUN /bin/bash -o pipefail -c mamba install --yes 'jupyterlab' 'notebook' 'jupyterhub' 'nbclassic' && jupyter server --generate-config && mamba clean --all -f -y && npm cache clean --force && jupyter lab clean && rm -rf "/home/${NB_USER}/.cache/yarn" && fix-permissions "${CONDA_DIR}" && fix-permissions "/home/${NB_USER}" # buildkit |
ENV JUPYTER_PORT=8888 |
EXPOSE map[8888/tcp:{}] |
CMD ["start-notebook.py"] |
COPY start-notebook.py start-notebook.sh start-singleuser.py start-singleuser.sh /usr/local/bin/ # buildkit |
COPY jupyter_server_config.py docker_healthcheck.py /etc/jupyter/ # buildkit |
USER root |
RUN /bin/bash -o pipefail -c fix-permissions /etc/jupyter/ # buildkit |
HEALTHCHECK &{["CMD-SHELL" "/etc/jupyter/docker_healthcheck.py || exit 1"] "3s" "1s" "3s" '\x03'} |
USER 1000 |
WORKDIR /home/jovyan |
LABEL maintainer=Jupyter Project <jupyter@googlegroups.com> |
SHELL [/bin/bash -o pipefail -c] |
USER root |
RUN /bin/bash -o pipefail -c apt-get update --yes && apt-get install --yes --no-install-recommends curl git nano-tiny tzdata unzip vim-tiny openssh-client less texlive-xetex texlive-fonts-recommended texlive-plain-generic xclip && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit |
RUN /bin/bash -o pipefail -c update-alternatives --install /usr/bin/nano nano /bin/nano-tiny 10 # buildkit |
USER 1000 |
COPY Rprofile.site /opt/conda/lib/R/etc/ # buildkit |
COPY setup-scripts/ /opt/setup-scripts/ # buildkit |
LABEL maintainer=Jupyter Project <jupyter@googlegroups.com> |
SHELL [/bin/bash -o pipefail -c] |
USER root |
RUN /bin/bash -o pipefail -c apt-get update --yes && apt-get install --yes --no-install-recommends build-essential cm-super dvipng ffmpeg && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit |
USER 1000 |
RUN /bin/bash -o pipefail -c mamba install --yes 'altair' 'beautifulsoup4' 'bokeh' 'bottleneck' 'cloudpickle' 'conda-forge::blas=*=openblas' 'cython' 'dask' 'dill' 'h5py' 'ipympl' 'ipywidgets' 'jupyterlab-git' 'matplotlib-base' 'numba' 'numexpr' 'openpyxl' 'pandas' 'patsy' 'protobuf' 'pytables' 'scikit-image' 'scikit-learn' 'scipy' 'seaborn' 'sqlalchemy' 'statsmodels' 'sympy' 'widgetsnbextension' 'xlrd' && mamba clean --all -f -y && fix-permissions "${CONDA_DIR}" && fix-permissions "/home/${NB_USER}" # buildkit |
WORKDIR /tmp |
RUN /bin/bash -o pipefail -c git clone https://github.com/PAIR-code/facets && jupyter nbclassic-extension install facets/facets-dist/ --sys-prefix && rm -rf /tmp/facets && fix-permissions "${CONDA_DIR}" && fix-permissions "/home/${NB_USER}" # buildkit |
RUN /bin/bash -o pipefail -c MPLBACKEND=Agg python -c "import matplotlib.pyplot" && fix-permissions "/home/${NB_USER}" # buildkit |
USER 1000 |
WORKDIR /home/jovyan |
SHELL ["/bin/bash", "-o", "pipefail", "-c"] |
USER root |
/bin/sh -c apt-get update --yes && apt-get install --yes --no-install-recommends git-lfs |
USER ${NB_UID} |
/bin/sh -c echo "install custom extensions " |
/bin/sh -c pip install --extra-index-url https://git.sandbox.iuk.hdm-stuttgart.de/api/packages/grosse/pypi/simple jupyterlab-sandbox-theme==0.1.4 |
/bin/sh -c pip install --extra-index-url https://git.sandbox.iuk.hdm-stuttgart.de/api/packages/grosse/pypi/simple jupyterlab-sandbox-announcement==0.1.3 |
/bin/sh -c pip install ipywebrtc==0.6.0 opencv-python-headless==4.9.0.80 voila==0.5.5 |
/bin/sh -c jupyter labextension disable "@jupyterlab/apputils-extension:announcements" |