summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2019-02-28 14:46:07 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2019-02-28 14:46:07 -0500
commit8c37ac76900b06794d99e2a7124af21b8093d7fe (patch)
tree6acd8189d73e78f4cf16b9390f88135472fb6e00 /Dockerfile
parentc4ec0592116720e53dfb8b2e327a2bf223701105 (diff)
downloaddocker-pipeline-nb-8c37ac76900b06794d99e2a7124af21b8093d7fe.tar.gz
Tack Jupyter scripts on top
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile44
1 files changed, 42 insertions, 2 deletions
diff --git a/Dockerfile b/Dockerfile
index b883784..8e37ea7 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,21 +4,61 @@ FROM ${HUB}/datb-tc-pipeline:${PIPELINE}
LABEL maintainer="jhunk@stsci.edu" \
vendor="Space Telescope Science Institute"
+ARG NB_USER="jovyan"
+ARG NB_UID="1100"
+ARG NB_GID="110"
+
+USER root
WORKDIR "${TOOLCHAIN_BUILD}"
COPY scripts/build.sh ${TOOLCHAIN_BUILD}/bin/
COPY etc/ ${TOOLCHAIN_BUILD}/etc
+ENV NB_USER="${NB_USER}" \
+ NB_UID="${NB_UID}" \
+ NB_GID="${NB_GID}" \
+ LC_ALL=en_US.UTF-8 \
+ LANG=en_US.UTF-8 \
+ LANGUAGE=en_US.UTF-8
+ENV NB_HOME="/home/${NB_USER}"
+
+ADD scripts/fix-permissions /usr/local/bin/fix-permissions
+# Create jovyan user with UID=1100 and in the 'users' group
+# and make sure these dirs are writable by the `users` group.
+RUN echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su && \
+ useradd -m -s /bin/bash -N -u $NB_UID $NB_USER && \
+ chmod g+w /etc/passwd && \
+ fix-permissions $NB_HOME && \
+ echo "root ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/rewt
+
+# Begin toolchain image-specific steps
USER "${USER_ACCT}"
RUN sudo chown -R ${USER_ACCT}: ${TOOLCHAIN_BUILD} \
&& bin/build.sh \
&& sudo rm -rf "${TOOLCHAIN_BUILD}"
+# Begin jupyterhub specific steps
+ENV HOME="${NB_HOME}"
+USER "${NB_UID}"
+
+# Setup work directory for backward-compatibility
+RUN mkdir /home/$NB_USER/work && \
+ fix-permissions /home/$NB_USER && \
+ jupyter notebook --generate-config
+
USER root
EXPOSE 8888
+WORKDIR "${HOME}"
+
ENTRYPOINT ["tini", "-g", "--"]
-CMD ["start.sh"]
+CMD ["start-notebook.sh"]
+
+COPY scripts/start.sh /usr/local/bin/
+COPY scripts/start-notebook.sh /usr/local/bin/
+COPY scripts/start-singleuser.sh /usr/local/bin/
+COPY scripts/jupyter_notebook_config.py /etc/jupyter/
+RUN fix-permissions /etc/jupyter/
-COPY scripts/start.sh /usr/local/bin
+USER "${NB_UID}"