Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
FROM nvidia/cuda:11.4.2-cudnn8-devel-ubuntu20.04
MAINTAINER Kyle Roth <kylrth@gmail.com>
USER root
ARG DEBIAN_FRONTEND=noninteractive
# Nvidia has rotated their GPG keys since this image was created.
RUN apt-key del 7fa2af80 && \
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
RUN apt-get update && \
apt-get install -yq software-properties-common
RUN apt-get update && apt-get -yq dist-upgrade
RUN apt-get install -yq --no-install-recommends \
bzip2 \
ca-certificates \
curl \
fonts-liberation \
locales \
man \
manpages-posix \
sudo \
wget
RUN yes | unminimize
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
ENV LC_ALL=en_US.UTF-8 \
LANG=en_US.UTF-8 \
LANGUAGE=en_US.UTF-8
# Install Tini
ARG TINI_VERSION=0.19.0
ARG TINI_SHA256=93dcc18adc78c65a028a84799ecf8ad40c936fdfc5f2a57b1acda5a8117fa82c
RUN wget --quiet https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini && \
echo "${TINI_SHA256} *tini" | sha256sum -c - && \
mv tini /usr/local/bin/tini && \
chmod +x /usr/local/bin/tini
COPY fix-permissions /usr/local/bin/fix-permissions
COPY start.sh /usr/local/bin/
COPY start-notebook.sh /usr/local/bin/
COPY start-singleuser.sh /usr/local/bin/
# create deep user with UID=1000 and in the 'users' group
# and make sure these dirs are writable by the `users` group
ARG CONDA_DIR=/opt/conda \
SHELL=/bin/bash \
NB_USER=deep \
NB_UID=1000 \
NB_GID=100
RUN useradd -m -s /bin/bash -N -u $NB_UID $NB_USER && \
mkdir -p $CONDA_DIR && \
chown $NB_USER:$NB_GID $CONDA_DIR && \
fix-permissions /home/$NB_USER && \
fix-permissions $CONDA_DIR
RUN rm /usr/local/bin/fix-permissions
RUN usermod -aG sudo $NB_USER
RUN echo "deep:changeme" | chpasswd
USER $NB_USER
# configure environment for CUDA
ENV CUDA_HOME /usr/local/cuda-11.4
ENV LD_LIBRARY_PATH /usr/local/cuda-11.4:/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
# CUPTI libs were moved to /usr/local/cuda/lib64
ENV LD_LIBRARY_PATH /usr/local/cuda/lib64:$LD_LIBRARY_PATH
ENV LIBRARY_PATH $LD_LIBRARY_PATH
# install conda as non-root user
ARG MINICONDA_VERSION=py39_4.12.0
ARG MINICONDA_SUM=7843dd7d0a2c53b0df37ca8189672992
ENV PATH=$CONDA_DIR/bin:$PATH
RUN cd /tmp && \
wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh && \
echo "${MINICONDA_SUM} *Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh" | md5sum -c - && \
/bin/bash Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p $CONDA_DIR && \
rm Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh && \
conda config --system --prepend channels conda-forge && \
conda config --system --set auto_update_conda false && \
conda config --system --set show_channel_urls true && \
conda update --all --quiet --yes && \
conda install --yes conda-build && conda build purge-all
# install necessary Jupyter components
RUN conda install -y \
python \
notebook=6.4.11 \
jupyterhub=2.3.0 \
jupyterlab=3.4.2 \
jupyter \
six
# create the .jupyter/lab dir so that when we mount user settings it doesn't create this dir as root
RUN mkdir -p /home/$NB_USER/.jupyter/lab
# configure container startup
ENTRYPOINT ["tini", "--"]
CMD ["start-notebook.sh"]
EXPOSE 8888
WORKDIR /home/$NB_USER