Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
J
Jupyter Docker Stacks
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
Jupyter Docker Stacks
Commits
7431d6cf
Commit
7431d6cf
authored
May 26, 2020
by
Peter Parente
Committed by
GitHub
May 26, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into remove-mesos
parents
bbbabd22
dc57157d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
96 additions
and
60 deletions
+96
-60
base-notebook/Dockerfile.ppc64le
base-notebook/Dockerfile.ppc64le
+96
-60
No files found.
base-notebook/Dockerfile.ppc64le
View file @
7431d6cf
...
@@ -5,6 +5,9 @@
...
@@ -5,6 +5,9 @@
FROM ppc64le/ubuntu:18.04
FROM ppc64le/ubuntu:18.04
LABEL maintainer="Ilsiyar Gaynutdinov <ilsiyar_gaynutdinov@ru.ibm.com>"
LABEL maintainer="Ilsiyar Gaynutdinov <ilsiyar_gaynutdinov@ru.ibm.com>"
ARG NB_USER="jovyan"
ARG NB_UID="1000"
ARG NB_GID="100"
USER root
USER root
...
@@ -13,88 +16,121 @@ USER root
...
@@ -13,88 +16,121 @@ USER root
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
RUN apt-get update \
&& apt-get install -yq --no-install-recommends \
&& apt-get install -yq --no-install-recommends \
build-essential
\
wget
\
bzip2 \
bzip2 \
ca-certificates \
ca-certificates \
cmake \
git \
locales \
sudo \
sudo \
wget \
locales \
fonts-liberation \
run-one \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN echo "LANGUAGE=en_US.UTF-8" >> /etc/default/locale
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
RUN echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale
locale-gen
RUN echo "LC_TYPE=en_US.UTF-8" >> /etc/default/locale
RUN locale-gen en_US en_US.UTF-8
#build and install Tini for ppc64le
RUN wget https://github.com/krallin/tini/archive/v0.18.0.tar.gz && \
tar zxvf v0.18.0.tar.gz && \
rm -rf v0.18.0.tar.gz
WORKDIR tini-0.18.0/
RUN cmake . && make install
RUN mv ./tini /usr/local/bin/tini && \
chmod +x /usr/local/bin/tini
WORKDIR ..
# Configure environment
# Configure environment
ENV CONDA_DIR /opt/conda
ENV CONDA_DIR=/opt/conda \
ENV PATH $CONDA_DIR/bin:$PATH
SHELL=/bin/bash \
ENV SHELL /bin/bash
NB_USER=$NB_USER \
ENV NB_USER jovyan
NB_UID=$NB_UID \
ENV NB_UID 1000
NB_GID=$NB_GID \
ENV HOME /home/$NB_USER
LC_ALL=en_US.UTF-8 \
ENV LC_ALL en_US.UTF-8
LANG=en_US.UTF-8 \
ENV LANG en_US.UTF-8
LANGUAGE=en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV PATH=$CONDA_DIR/bin:$PATH \
HOME=/home/$NB_USER
# Create jovyan user with UID=1000 and in the 'users' group
RUN useradd -m -s /bin/bash -N -u $NB_UID $NB_USER && \
# Copy a script that we will use to correct permissions after running certain commands
COPY fix-permissions /usr/local/bin/fix-permissions
RUN chmod a+rx /usr/local/bin/fix-permissions
# Enable prompt color in the skeleton .bashrc before creating the default NB_USER
RUN sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' /etc/skel/.bashrc
# Create NB_USER wtih name jovyan user with UID=1000 and in the 'users' group
# and make sure these dirs are writable by the `users` group.
RUN 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 -m -s /bin/bash -N -u $NB_UID $NB_USER && \
mkdir -p $CONDA_DIR && \
mkdir -p $CONDA_DIR && \
chown $NB_USER $CONDA_DIR
chown $NB_USER:$NB_GID $CONDA_DIR && \
chmod g+w /etc/passwd && \
fix-permissions $HOME && \
fix-permissions $CONDA_DIR
USER $NB_UID
USER $NB_UID
WORKDIR $HOME
ARG PYTHON_VERSION=default
# Setup
jovyan home director
y
# Setup
work directory for backward-compatibilit
y
RUN mkdir /home/$NB_USER/work && \
RUN mkdir /home/$NB_USER/work && \
mkdir /home/$NB_USER/.jupyter && \
fix-permissions /home/$NB_USER
echo "cacert=/etc/ssl/certs/ca-certificates.crt" > /home/$NB_USER/.curlrc
# Install conda as jovyan and check the md5 sum provided on the download site
ENV MINICONDA_VERSION=4.8.2 \
MINICONDA_MD5=e50662a93f3f5e56ef2d3fdfaf2f8e91 \
CONDA_VERSION=4.8.2
# Install conda as jovyan
# Install conda as jovyan
RUN cd /tmp && \
RUN cd /tmp && \
mkdir -p $CONDA_DIR && \
wget --quiet https://repo.continuum.io/miniconda/Miniconda3-py37_${MINICONDA_VERSION}-Linux-ppc64le.sh && \
wget https://repo.continuum.io/miniconda/Miniconda3-4.2.12-Linux-ppc64le.sh && \
echo "${MINICONDA_MD5} *Miniconda3-py37_${MINICONDA_VERSION}-Linux-ppc64le.sh" | md5sum -c - && \
/bin/bash Miniconda3-4.2.12-Linux-ppc64le.sh -f -b -p $CONDA_DIR && \
/bin/bash Miniconda3-py37_${MINICONDA_VERSION}-Linux-ppc64le.sh -f -b -p $CONDA_DIR && \
rm -rf Miniconda3-4.2.12-Linux-ppc64le.sh && \
rm -rf Miniconda3-py37_${MINICONDA_VERSION}-Linux-ppc64le.sh && \
$CONDA_DIR/bin/conda install --quiet --yes conda=4.2.12 && \
echo "conda ${CONDA_VERSION}" >> $CONDA_DIR/conda-meta/pinned && \
$CONDA_DIR/bin/conda config --system --add channels conda-forge && \
conda config --system --prepend channels conda-forge && \
$CONDA_DIR/bin/conda config --system --set auto_update_conda false && \
conda config --system --set auto_update_conda false && \
conda clean --all -f -y
conda config --system --set show_channel_urls true && \
conda config --system --set channel_priority strict && \
# Install Jupyter notebook and Hub
if [ ! $PYTHON_VERSION = 'default' ]; then conda install --yes python=$PYTHON_VERSION; fi && \
RUN yes | pip install --upgrade pip
conda list python | grep '^python ' | tr -s ' ' | cut -d '.' -f 1,2 | sed 's/$/.*/' >> $CONDA_DIR/conda-meta/pinned && \
RUN yes | pip install --quiet --no-cache-dir \
conda install --quiet --yes conda && \
'notebook==5.2.*' \
conda install --quiet --yes pip && \
'jupyterhub==0.7.*' \
conda update --all --quiet --yes && \
'jupyterlab==0.18.*'
conda clean --all -f -y && \
rm -rf /home/$NB_USER/.cache/yarn && \
USER root
fix-permissions $CONDA_DIR && \
fix-permissions /home/$NB_USER
# Install Tini
RUN conda install --quiet --yes 'tini=0.18.0' && \
conda list tini | grep tini | tr -s ' ' | cut -d ' ' -f 1,2 >> $CONDA_DIR/conda-meta/pinned && \
conda clean --all -f -y && \
fix-permissions $CONDA_DIR && \
fix-permissions /home/$NB_USER
# Install Jupyter Notebook, Lab, and Hub
# Generate a notebook server config
# Cleanup temporary files
# Correct permissions
# Do all this in a single RUN command to avoid duplicating all of the
# files across image layers when the permissions change
RUN conda install --quiet --yes \
'notebook=6.0.3' \
'jupyterhub=1.1.0' \
'jupyterlab=2.1.1' && \
conda clean --all -f -y && \
npm cache clean --force && \
jupyter notebook --generate-config && \
rm -rf $CONDA_DIR/share/jupyter/lab/staging && \
rm -rf /home/$NB_USER/.cache/yarn && \
fix-permissions $CONDA_DIR && \
fix-permissions /home/$NB_USER
EXPOSE 8888
EXPOSE 8888
WORKDIR /home/$NB_USER/work
RUN echo "ALL ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers
# Configure container startup
# Configure container startup
ENTRYPOINT ["tini", "-g", "--"]
ENTRYPOINT ["tini", "-g", "--"]
CMD ["start-notebook.sh"]
CMD ["start-notebook.sh"]
# Add local files as late as possible to avoid cache busting
# Copy local files as late as possible to avoid cache busting
COPY start.sh /usr/local/bin/
COPY start.sh start-notebook.sh start-singleuser.sh /usr/local/bin/
COPY start-notebook.sh /usr/local/bin/
COPY jupyter_notebook_config.py /etc/jupyter/
COPY start-singleuser.sh /usr/local/bin/
COPY jupyter_notebook_config.py /home/$NB_USER/.jupyter/
# Fix permissions on /etc/jupyter as root
RUN chown -R $NB_USER:users /home/$NB_USER/.jupyter
USER root
RUN fix-permissions /etc/jupyter/
# Switch back to jovyan to avoid accidental container runs as root
# Switch back to jovyan to avoid accidental container runs as root
USER $NB_UID
USER $NB_UID
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment