diff --git a/lmod/Dockerfile b/lmod/Dockerfile index 2ab313934327c7ea21bbc44d13ce34de591b96f0..bd117d2d7d9d2e600560d5e39f23998a3b5c81b8 100644 --- a/lmod/Dockerfile +++ b/lmod/Dockerfile @@ -59,11 +59,11 @@ COPY --chown=root:root ./install_files/lmod /opt/apps/install/lmod RUN /bin/bash /opt/apps/install/lmod/install_lmod_8.7.sh COPY files/bash.bashrc /etc/bash.bashrc -COPY files/mnt.sh /tmp/mnt.sh -COPY files/start_jupyter.sh /tmp/custom/start_jupyter.sh -RUN /bin/bash /tmp/mnt.sh && rm /tmp/mnt.sh && fix-permissions /tmp/custom +COPY files/start-singleuser.sh /tmp/custom/start-singleuser.sh +RUN fix-permissions /tmp/custom +RUN chmod +x /tmp/custom/start-singleuser.sh +ENV PATH="/tmp/custom:${PATH}" USER $NB_USER WORKDIR /home/$NB_USER -ENTRYPOINT ["/bin/bash", "/tmp/custom/start_jupyter.sh"] -CMD ["--ServerApp.default_url=/lab/tree/home/jovyan"] +ENTRYPOINT ["start-singleuser.sh"] diff --git a/lmod/files/mnt.sh b/lmod/files/mnt.sh deleted file mode 100644 index c03fce3a73814a52540839a066a6341647326b59..0000000000000000000000000000000000000000 --- a/lmod/files/mnt.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# add JUST_HOME support -JUST_HOME_PATH=/mnt/JUST_HOME -mkdir -p ${JUST_HOME_PATH} -chown ${NB_UID}:${NB_GID} ${JUST_HOME_PATH} - -mkdir -p /p/data1 -chown ${NB_UID}:${NB_GID} /p/data1 - -mkdir -p /p/project1 -chown ${NB_UID}:${NB_GID} /p/project1 - -mkdir -p /p/home/jusers -chown ${NB_UID}:${NB_GID} /p/home/jusers - -## add B2DROP support -B2DROP_PATH=/mnt/B2DROP -mkdir -p ${B2DROP_PATH} -chown ${NB_UID}:${NB_GID} ${B2DROP_PATH} - - -usermod -aG davfs2 ${NB_UID} -echo "https://b2drop.eudat.eu/remote.php/webdav ${B2DROP_PATH} davfs user,rw,noauto 0 0" >> /etc/fstab -chmod u+s /usr/sbin/mount.davfs diff --git a/lmod/files/start_jupyter.sh b/lmod/files/start-singleuser.sh similarity index 87% rename from lmod/files/start_jupyter.sh rename to lmod/files/start-singleuser.sh index 9469957f6e9bd8cad13d54336977b10adf84d15a..4ab6daada3b7a99384d574d583c2a4db6988e2b6 100644 --- a/lmod/files/start_jupyter.sh +++ b/lmod/files/start-singleuser.sh @@ -20,6 +20,7 @@ set_env() { API_URL_WITHOUT_PROTO=${JUPYTERHUB_API_URL##https\:\/\/} export JUPYTERHUB_DOMAIN=${API_URL_WITHOUT_PROTO%%\/*} export JUPYTER_SERVER_PUBLIC_URL="https://${JUPYTERHUB_DOMAIN}${JUPYTERHUB_SERVICE_PREFIX}" + export JUPYTER_CONFIG_PATH="${JUPYTER_CONFIG_PATH:+$JUPYTER_CONFIG_PATH:}/tmp/jupyter_config" export DWAVE_INSPECTOR_JUPYTER_SERVER_PROXY_EXTERNAL_URL=${JUPYTER_SERVER_PUBLIC_URL} echo "$(date) - Set environment variables done" } @@ -139,30 +140,31 @@ cleanup () { update_config () { # We have to copy the config.py file, because it's mounted as read-only + mkdir -p /tmp/jupyter_config if [[ -f ${DIR}/config.py ]]; then - cp ${DIR}/config.py /tmp/config.py - chmod +w /tmp/config.py - sed -i -e "s|_servername_|${JUPYTERHUB_SERVER_NAME}|g" /tmp/config.py + cp ${DIR}/config.py /tmp/jupyter_config/jupyter_notebook_config.py + chmod +w /tmp/jupyter_config/jupyter_notebook_config.py + sed -i -e "s|_servername_|${JUPYTERHUB_SERVER_NAME}|g" /tmp/jupyter_config/jupyter_notebook_config.py else # Otherwise the CMD in Dockerfile would not work correctly # If other values are required, one can add a default config.py, this is # just the fallback solution - chmod +w /tmp/config.py - echo "c.ServerApp.root_dir = \"/\"" >> /tmp/config.py + chmod +w /tmp/jupyter_config/jupyter_notebook_config.py + echo "c.ServerApp.root_dir = \"/\"" >> /tmp/jupyter_config/jupyter_notebook_config.py fi if [[ -f ${EBROOTJUPYTERLAB}/etc/jupyter/jupyter_notebook_config.py ]]; then echo "$(date) - Add system specific config ..." - echo "" >> /tmp/config.py - cat ${EBROOTJUPYTERLAB}/etc/jupyter/jupyter_notebook_config.py >> /tmp/config.py + echo "" >> /tmp/jupyter_config/jupyter_notebook_config.py + cat ${EBROOTJUPYTERLAB}/etc/jupyter/jupyter_notebook_config.py >> /tmp/jupyter_config/jupyter_notebook_config.py for path in ${JUPYTER_EXTRA_LABEXTENSIONS_PATH//:/$'\n'}; do - echo "c.LabServerApp.extra_labextensions_path.append('$path')" >> /tmp/config.py + echo "c.LabServerApp.extra_labextensions_path.append('$path')" >> /tmp/jupyter_config/jupyter_notebook_config.py done echo "$(date) - Add system specific config done" fi if [[ -f /home/jovyan/.jupyter/config.py ]]; then ## Add your own stuff to the config - echo "" >> /tmp/config.py - cat /home/jovyan/.jupyter/config.py >> /tmp/config.py + echo "" >> /tmp/jupyter_config/jupyter_notebook_config.py + cat /home/jovyan/.jupyter/config.py >> /tmp/jupyter_config/jupyter_notebook_config.py fi if [[ -f ${EBROOTJUPYTERLAB}/bin/update_favorites_json ]]; then # update favorite-dirs with $HOME,$PROJECT,$SCRATCH, @@ -173,7 +175,7 @@ update_config () { start () { echo "$(date) - Start ${JUPYTERJSC_USER_CMD} with args ${@} ..." - ${JUPYTERJSC_USER_CMD} --config /tmp/config.py ${@} 2>&1 | tee ${JUPYTER_LOG_DIR}/stdout + ${JUPYTERJSC_USER_CMD} ${@} 2>&1 | tee ${JUPYTER_LOG_DIR}/stdout echo "$(date) - Start ${JUPYTERJSC_USER_CMD} done" }