Commit 80c84752 authored by Peter Parente's avatar Peter Parente

Improve start-notebook.sh checks

* Only create jovyan and set perms if user does not exist
* Allow docker host mount for NB_WORK: copy skel files if useradd fails because home dir already exists

Contribution (c) Copyright IBM Corp. 2015
parent c4616560
......@@ -27,7 +27,9 @@ RUN apt-get update && apt-get install -yq --no-install-recommends \
# Configure docker environment
ENV CONDA_DIR /opt/conda
ENV NB_USER jovyan
ENV WORK /home/$NB_USER/work
ENV NB_HOME /home/$NB_USER
ENV NB_WORK $NB_HOME/work
ENV WORK $NB_WORK
ENV PATH $CONDA_DIR/bin:$PATH
# Install conda
......
#!/bin/bash
set -e
# Create non-root NB_USER, member of group "users"
useradd -m -s /bin/bash -u ${NB_UID:-1000} -G users $NB_USER
# Create non-root NB_USER if one doesn't exist
id -u $NB_USER && user_exists=true
if [ -z "$user_exists" ] ; then
useradd -m -s /bin/bash -u ${NB_UID:-1000} $NB_USER
# Allow "users" group to update conda root env
chown -R root.users $CONDA_DIR
chmod -R g+w $CONDA_DIR
# Setup a work directory rooted in the NB_USER home
mkdir -p $WORK
chown -R jovyan.jovyan $NB_HOME
# Setup a work directory rooted in the NB_USER home
mkdir -p $WORK
chown root.users $WORK
chmod g+w $WORK
# Allow "jovyan" group to update conda root env
chown -R root.jovyan $CONDA_DIR
chmod g+w $CONDA_DIR
fi
# Copy skeleton files if useradd didn't do it (e.g., volume mounted dir
# residing in /home/jovyan prevented it)
if [ ! -d $NB_HOME/.jupyter ]; then
cp -r /etc/skel/. $NB_HOME
chown -R jovyan.jovyan $NB_HOME
fi
# Enable sudo if requested
if [ ! -z "$GRANT_SUDO" ]; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment