Block a user
jupyter-image (a17668d)
Published 2026-09-14 16:53:27 +01:00 by olb042
Installation
docker pull git.olb42.com/olb042/jupyter-image:a17668dsha256:b2cba7e3316659bb26c7e1005d3110a389a5e7f9120fab76f07e174477dcd6da
Image Layers
| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:cb9335ce6f27399c2b17787739d6675502767c53e0335ded2a5f0d003d996650 in / |
| CMD ["/bin/bash"] |
| LABEL maintainer=Jupyter Project <[email protected]> |
| 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 ca-certificates locales netbase sudo tini wget && apt-get clean && rm -rf /var/lib/apt/lists/* && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && echo "C.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=C.UTF-8 LANG=C.UTF-8 LANGUAGE=C.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 if id -un "${NB_UID}" >/dev/null 2>&1; then userdel --remove "$(id -un "${NB_UID}")"; fi # 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 |
| RUN |3 NB_USER=jovyan NB_UID=1000 NB_GID=100 /bin/bash -o pipefail -c rm -rf "/home/${NB_USER}/.cache/" && mkdir -p "/home/${NB_USER}/.cache" && chown "${NB_USER}:${NB_GID}" "/home/${NB_USER}/.cache" # buildkit |
| RUN |3 NB_USER=jovyan NB_UID=1000 NB_GID=100 /bin/bash -o pipefail -c rm -rf "/home/${NB_USER}/.cache/rosetta" # buildkit |
| USER 1000 |
| ARG PYTHON_VERSION=3.13 |
| RUN |4 NB_USER=jovyan NB_UID=1000 NB_GID=100 PYTHON_VERSION=3.13 /bin/bash -o pipefail -c mkdir "/home/${NB_USER}/work" && fix-permissions "/home/${NB_USER}" # buildkit |
| COPY --chown=1000:100 initial-condarc /opt/conda/.condarc # buildkit |
| WORKDIR /tmp |
| RUN |4 NB_USER=jovyan NB_UID=1000 NB_GID=100 PYTHON_VERSION=3.13 /bin/bash -o pipefail -c set -x && PYTHON_SPECIFIER="python=${PYTHON_VERSION}" && if [ "${PYTHON_VERSION}" = "default" ]; then PYTHON_SPECIFIER="python"; fi && micromamba install --root-prefix="${CONDA_DIR}" --prefix="${CONDA_DIR}" --yes 'jupyter_core' 'conda' "mamba==$(micromamba --version)" "${PYTHON_SPECIFIER}" && mamba list --full-name 'python' | awk 'END{sub("[^.]*$", "*", $2); print $1 " " $2}' >> "${CONDA_DIR}/conda-meta/pinned" && mamba clean --all -f -y && fix-permissions "${CONDA_DIR}" && fix-permissions "/home/${NB_USER}" # buildkit |
| COPY _docker_stacks_log.sh 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.13 /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 |
| RUN |4 NB_USER=jovyan NB_UID=1000 NB_GID=100 PYTHON_VERSION=3.13 /bin/bash -o pipefail -c rm -rf "/home/${NB_USER}/.cache/rosetta" # buildkit |
| USER 1000 |
| WORKDIR /home/jovyan |
| LABEL maintainer=Jupyter Project <[email protected]> |
| 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 |
| RUN /bin/bash -o pipefail -c rm -rf "/home/${NB_USER}/.cache/rosetta" # buildkit |
| USER 1000 |
| WORKDIR /tmp |
| RUN /bin/bash -o pipefail -c mamba install --yes 'jupyterhub-singleuser' 'jupyterlab' 'nbclassic' 'notebook>=7.2.2' && jupyter server --generate-config && mamba clean --all -f -y && 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" "/etc/jupyter/docker_healthcheck.py"] "3s" "1s" "3s" "0s" '\x03'} |
| RUN /bin/bash -o pipefail -c rm -rf "/home/${NB_USER}/.cache/rosetta" # buildkit |
| USER 1000 |
| WORKDIR /home/jovyan |
| LABEL maintainer=Jupyter Project <[email protected]> |
| 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 |
| RUN /bin/bash -o pipefail -c rm -rf "/home/${NB_USER}/.cache/rosetta" # buildkit |
| USER 1000 |
| COPY --chown=1000:100 Rprofile.site /opt/conda/lib/R/etc/ # buildkit |
| COPY setup-scripts/ /opt/setup-scripts/ # buildkit |
| ARG VENV_NAME=whatapp-emo |
| USER root |
| RUN |1 VENV_NAME=whatapp-emo /bin/bash -o pipefail -c mkdir -p /opt/venvs && chown ${NB_UID}:${NB_GID} /opt/venvs # buildkit |
| RUN |1 VENV_NAME=whatapp-emo /bin/bash -o pipefail -c apt-get update && apt-get install --yes --no-install-recommends rsync && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit |
| USER 1000 |
| RUN |1 VENV_NAME=whatapp-emo /bin/bash -o pipefail -c pip install --no-cache-dir uv jupyterlab-git ipykernel # buildkit |
| COPY --chown=1000:100 whatapp-emo.txt /opt/venvs/whatapp-emo.requirements.txt # buildkit |
| RUN |1 VENV_NAME=whatapp-emo /bin/bash -o pipefail -c uv venv /opt/venvs/${VENV_NAME} && uv pip install --python /opt/venvs/${VENV_NAME}/bin/python --requirement /opt/venvs/${VENV_NAME}.requirements.txt # buildkit |
| RUN |1 VENV_NAME=whatapp-emo /bin/bash -o pipefail -c /opt/venvs/${VENV_NAME}/bin/python -m ipykernel install --prefix "${CONDA_DIR}" --name "${VENV_NAME}" --display-name "Python (${VENV_NAME})" # buildkit |
Labels
| Key | Value |
|---|---|
| maintainer | Jupyter Project <[email protected]> |
| org.opencontainers.image.created | 2026-09-14T15:53:19Z |
| org.opencontainers.image.revision | a17668d |
| org.opencontainers.image.source | https://git.olb42.com/olb042/jupyter-image |
| org.opencontainers.image.title | jupyter-image |
| org.opencontainers.image.version | a17668d |