Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 37 additions & 32 deletions http/src/main/resources/init-resources/gce-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,9 @@ START_USER_SCRIPT_OUTPUT_URI=$(startUserScriptOutputUri)
IS_GCE_FORMATTED=$(isGceFormatted)
# Needs to be in sync with terra-docker container
JUPYTER_HOME=/etc/jupyter
JUPYTER_SCRIPTS=$JUPYTER_HOME/scripts
JUPYTER_USER_HOME=$(jupyterHomeDirectory)
JUPYTER_EXTENSIONS=$JUPYTER_HOME/extensions
JUPYTER_SCRIPTS=$JUPYTER_EXTENSIONS/scripts
USER_HOME=$(jupyterHomeDirectory)
RSTUDIO_SCRIPTS=/etc/rstudio/scripts
SERVER_CRT=$(proxyServerCrt)
SERVER_KEY=$(proxyServerKey)
Expand Down Expand Up @@ -410,13 +411,11 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
# Install everything after having mounted the empty PD
# This should not be needed anymore if the jupyter home is a directory of the PD mount point
# See: https://github.com/DataBiosphere/leonardo/pull/4465/files
if [ ! "$JUPYTER_USER_HOME" = "/home/jupyter" ] ; then
if [ ! "$USER_HOME" = "/home/jupyter" ] ; then
# TODO: Remove once we stop supporting non AI notebooks based images
log 'Installing Jupyter kernelspecs...(Remove once we stop supporting non AI notebooks based images)'
KERNELSPEC_HOME=/usr/local/share/jupyter/kernels

log 'Installing Jupyter kernelspecs'
# Install kernelspecs inside the Jupyter container
retry 3 docker exec -u root ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/kernel/kernelspec.sh ${JUPYTER_SCRIPTS}/kernel ${KERNELSPEC_HOME}
retry 3 docker exec -u root ${JUPYTER_SERVER_NAME} ${JUPYTER_HOME}/kernel/kernelspec.sh ${JUPYTER_SCRIPTS}/kernel ${KERNELSPEC_HOME}
fi

# Install notebook.json which is used to populate Jupyter.notebook.config in JavaScript extensions.
Expand Down Expand Up @@ -447,14 +446,14 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
$GSUTIL_CMD cp $ext /var
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /var/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
elif [[ $ext == 'http://'* || $ext == 'https://'* ]]; then
JUPYTER_EXTENSION_FILE=`basename $ext`
curl $ext -o /var/${JUPYTER_EXTENSION_FILE}
docker cp /var/${JUPYTER_EXTENSION_FILE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
else
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_pip_install_notebook_extension.sh $ext
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_pip_install_notebook_extension.sh $ext
fi
done
fi
Expand All @@ -468,9 +467,9 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
$GSUTIL_CMD cp $ext /var
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /var/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_server_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_server_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
else
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_pip_install_server_extension.sh $ext
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_pip_install_server_extension.sh $ext
fi
done
fi
Expand All @@ -485,9 +484,9 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
$GSUTIL_CMD cp $ext /var
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /var/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_combined_extension.sh ${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_combined_extension.sh ${JUPYTER_EXTENSION_ARCHIVE}
else
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_pip_install_combined_extension.sh $ext
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_pip_install_combined_extension.sh $ext
fi
done
fi
Expand All @@ -503,14 +502,14 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
$GSUTIL_CMD cp -r $ext /var
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /var/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
elif [[ $ext == 'http://'* || $ext == 'https://'* ]]; then
JUPYTER_EXTENSION_FILE=`basename $ext`
curl $ext -o /var/${JUPYTER_EXTENSION_FILE}
docker cp /var/${JUPYTER_EXTENSION_FILE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
else
retry 3 docker exec -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_lab_extension.sh $ext
retry 3 docker exec -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_lab_extension.sh $ext
fi
done
fi
Expand All @@ -524,24 +523,26 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "R -e '1+1'" || true

# For older jupyter images, jupyter_delocalize.py is using 127.0.0.1 as welder's url, which won't work now that we're no longer using `network_mode: host` for GCE VMs
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "sed -i 's/127.0.0.1/welder/g' /etc/jupyter/custom/jupyter_delocalize.py"
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "sed -i 's/127.0.0.1/welder/g' $JUPYTER_EXTENSIONS/jupyter_delocalize.py"

log 'Wget the gitignore_global file, set gitignore in Git Config'

# Copy gitignore into jupyter container (ask AOU?)
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "wget -N https://raw.githubusercontent.com/DataBiosphere/terra-docker/045a139dbac19fbf2b8c4080b8bc7fff7fc8b177/terra-jupyter-aou/gitignore_global"
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "wget -N https://raw.githubusercontent.com/DataBiosphere/terra-docker/045a139dbac19fbf2b8c4080b8bc7fff7fc8b177/terra-jupyter-aou/gitignore_global \
&& git config --global core.excludesfile $USER_HOME/gitignore_global"

# Install nbstripout and set gitignore in Git Config (ask AOU?)
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "pip install nbstripout \
&& nbstripout --install --global \
&& git config --global core.excludesfile $JUPYTER_USER_HOME/gitignore_global"
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "whoami"

docker exec $JUPYTER_SERVER_NAME /bin/bash -c "ls -l $JUPYTER_EXTENSIONS"

# Starts the locking logic (used for AOU). google_sign_in.js is likely not used anymore
docker exec -u 0 $JUPYTER_SERVER_NAME /bin/bash -c "$JUPYTER_HOME/scripts/extension/install_jupyter_contrib_nbextensions.sh \
&& mkdir -p $JUPYTER_USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_HOME/custom/google_sign_in.js $JUPYTER_USER_HOME/.jupyter/custom/ \
&& ls -la $JUPYTER_HOME/custom/extension_entry_jupyter.js \
&& cp $JUPYTER_HOME/custom/extension_entry_jupyter.js $JUPYTER_USER_HOME/.jupyter/custom/custom.js \
&& cp $JUPYTER_HOME/custom/safe-mode.js $JUPYTER_USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_HOME/custom/edit-mode.js $JUPYTER_USER_HOME/.jupyter/custom/ \
docker exec -u 0 $JUPYTER_SERVER_NAME /bin/bash -c "$JUPYTER_SCRIPTS/install_jupyter_contrib_nbextensions.sh \
&& mkdir -p $USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_EXTENSIONS/google_sign_in.js $USER_HOME/.jupyter/custom/ \
&& ls -la $JUPYTER_EXTENSIONS/extension_entry_jupyter.js \
&& cp $JUPYTER_EXTENSIONS/extension_entry_jupyter.js $USER_HOME/.jupyter/custom/custom.js \
&& cp $JUPYTER_EXTENSIONS/safe-mode.js $USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_EXTENSIONS/edit-mode.js $USER_HOME/.jupyter/custom/ \
&& mkdir -p $JUPYTER_HOME/nbconfig"

# In new jupyter images, we should update jupyter_notebook_config.py in terra-docker.
Expand All @@ -565,8 +566,12 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
# done start user script
STEP_TIMINGS+=($(date +%s))

# Move jupyter_localize_extension and jupyter_delocalize to site-packages so they can be found by jupyter
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "mv ${JUPYTER_EXTENSIONS}/jupyter_delocalize.py ${JUPYTER_HOME}/lib/python3.10/site-packages"
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "mv ${JUPYTER_EXTENSIONS}/jupyter_localize_extension.py ${JUPYTER_HOME}/lib/python3.10/site-packages"

log 'Starting Jupyter Notebook...'
retry 3 docker exec -d $JUPYTER_SERVER_NAME /bin/bash -c "${JUPYTER_SCRIPTS}/run-jupyter.sh ${NOTEBOOKS_DIR}"
retry 3 docker exec -d $JUPYTER_SERVER_NAME /bin/bash -c "${JUPYTER_HOME}/run-jupyter.sh ${NOTEBOOKS_DIR}"

# done start Jupyter
STEP_TIMINGS+=($(date +%s))
Expand Down Expand Up @@ -639,4 +644,4 @@ log 'All done!'

ELAPSED_TIME=$(($END_TIME - $START_TIME))
log "gce-init.sh took $(display_time $ELAPSED_TIME)"
log "Step timings: ${STEP_TIMINGS[@]}"
log "Step timings: ${STEP_TIMINGS[@]}"
46 changes: 24 additions & 22 deletions http/src/main/resources/init-resources/init-actions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ if [[ "${ROLE}" == 'Master' ]]; then
bash add-google-cloud-ops-agent-repo.sh --also-install

JUPYTER_HOME=/etc/jupyter
JUPYTER_SCRIPTS=${JUPYTER_HOME}/scripts
JUPYTER_EXTENSIONS=$JUPYTER_HOME/extensions
JUPYTER_SCRIPTS=$JUPYTER_EXTENSIONS/scripts
KERNELSPEC_HOME=/usr/local/share/jupyter/kernels

# Set variables
Expand All @@ -168,7 +169,7 @@ if [[ "${ROLE}" == 'Master' ]]; then
# Avoid exporting variables unless they are needed by external scripts or docker-compose files.
export CLOUD_SERVICE='DATAPROC'
# Needs to be in sync with terra-docker container
export JUPYTER_USER_HOME=$(jupyterHomeDirectory)
export USER_HOME=$(jupyterHomeDirectory)
export CLUSTER_NAME=$(clusterName)
export RUNTIME_NAME=$(clusterName)
export GOOGLE_PROJECT=$(googleProject)
Expand Down Expand Up @@ -275,6 +276,7 @@ EOF
# If any image is hosted in a GAR registry (detected by regex) then
# authorize docker to interact with gcr.io.
# NOTE: GCR images are now hosted on GAR, but the file paths haven't changed, they automatically redirect.
# TODO (LM) test with non-broad account
if grep -qF "gcr.io" <<< "${JUPYTER_DOCKER_IMAGE}${RSTUDIO_DOCKER_IMAGE}${PROXY_DOCKER_IMAGE}${WELDER_DOCKER_IMAGE}" ; then
log 'Authorizing GCR/GAR...'
gcloud auth configure-docker
Expand Down Expand Up @@ -360,14 +362,14 @@ EOF
gsutil cp $ext /etc
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /etc/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
elif [[ $ext == 'http://'* || $ext == 'https://'* ]]; then
JUPYTER_EXTENSION_FILE=`basename $ext`
curl $ext -o /etc/${JUPYTER_EXTENSION_FILE}
docker cp /etc/${JUPYTER_EXTENSION_FILE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_notebook_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
else
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_pip_install_notebook_extension.sh $ext
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_pip_install_notebook_extension.sh $ext
fi
done
fi
Expand All @@ -383,9 +385,9 @@ EOF
gsutil cp $ext /etc
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /etc/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_server_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_server_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
else
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_pip_install_server_extension.sh $ext
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME}${JUPYTER_SCRIPTS}/jupyter_pip_install_server_extension.sh $ext
fi
done
fi
Expand All @@ -402,9 +404,9 @@ EOF
gsutil cp $ext /etc
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /etc/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_combined_extension.sh ${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_combined_extension.sh ${JUPYTER_EXTENSION_ARCHIVE}
else
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_pip_install_combined_extension.sh $ext
retry 3 docker exec -u root -e PIP_USER=false ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_pip_install_combined_extension.sh $ext
fi
done
fi
Expand Down Expand Up @@ -438,14 +440,14 @@ EOF
gsutil cp -r $ext /etc
JUPYTER_EXTENSION_ARCHIVE=`basename $ext`
docker cp /etc/${JUPYTER_EXTENSION_ARCHIVE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
retry 3 docker exec ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_ARCHIVE}
elif [[ $ext == 'http://'* || $ext == 'https://'* ]]; then
JUPYTER_EXTENSION_FILE=`basename $ext`
curl $ext -o /etc/${JUPYTER_EXTENSION_FILE}
docker cp /etc/${JUPYTER_EXTENSION_FILE} ${JUPYTER_SERVER_NAME}:${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
retry 3 docker exec ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_lab_extension.sh ${JUPYTER_HOME}/${JUPYTER_EXTENSION_FILE}
else
retry 3 docker exec ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/extension/jupyter_install_lab_extension.sh $ext
retry 3 docker exec ${JUPYTER_SERVER_NAME} ${JUPYTER_SCRIPTS}/jupyter_install_lab_extension.sh $ext
fi
done
fi
Expand All @@ -459,7 +461,7 @@ EOF

# jupyter_delocalize.py now assumes welder's url is `http://welder:8080`, but on dataproc, we're still using host network
# A better to do this might be to take welder host as an argument to the script
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "sed -i 's/http:\/\/welder/http:\/\/127.0.0.1/g' /etc/jupyter/custom/jupyter_delocalize.py"
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "sed -i 's/http:\/\/welder/http:\/\/127.0.0.1/g' ${JUPYTER_EXTENSIONS}/jupyter_delocalize.py"

# In new jupyter images, we should update jupyter_notebook_config.py in terra-docker.
# This is to make it so that older images will still work after we change notebooks location to home dir
Expand All @@ -471,20 +473,20 @@ EOF
# Install nbstripout and set gitignore in Git Config
docker exec $JUPYTER_SERVER_NAME /bin/bash -c "pip install nbstripout \
&& python -m nbstripout --install --global \
&& git config --global core.excludesfile $JUPYTER_USER_HOME/gitignore_global"
&& git config --global core.excludesfile $USER_HOME/gitignore_global"

# Install the custom jupyter extensions needed to lock notebooks into edit or safe modes (required by AOU)
docker exec -u 0 $JUPYTER_SERVER_NAME /bin/bash -c "$JUPYTER_HOME/scripts/extension/install_jupyter_contrib_nbextensions.sh \
&& mkdir -p $JUPYTER_USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_HOME/custom/google_sign_in.js $JUPYTER_USER_HOME/.jupyter/custom/ \
&& ls -la $JUPYTER_HOME/custom/extension_entry_jupyter.js \
&& cp $JUPYTER_HOME/custom/extension_entry_jupyter.js $JUPYTER_USER_HOME/.jupyter/custom/custom.js \
&& cp $JUPYTER_HOME/custom/safe-mode.js $JUPYTER_USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_HOME/custom/edit-mode.js $JUPYTER_USER_HOME/.jupyter/custom/ \
docker exec -u 0 $JUPYTER_SERVER_NAME /bin/bash -c "$JUPYTER_SCRIPTS/install_jupyter_contrib_nbextensions.sh \
&& mkdir -p $USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_EXTENSIONS/google_sign_in.js $USER_HOME/.jupyter/custom/ \
&& ls -la $JUPYTER_EXTENSIONS/extension_entry_jupyter.js \
&& cp $JUPYTER_EXTENSIONS/extension_entry_jupyter.js $USER_HOME/.jupyter/custom/custom.js \
&& cp $JUPYTER_EXTENSIONS/safe-mode.js $USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_EXTENSIONS/edit-mode.js $USER_HOME/.jupyter/custom/ \
&& mkdir -p $JUPYTER_HOME/nbconfig"

log 'Starting Jupyter Notebook...'
retry 3 docker exec -d ${JUPYTER_SERVER_NAME} /bin/bash -c "${JUPYTER_SCRIPTS}/run-jupyter.sh ${NOTEBOOKS_DIR}"
retry 3 docker exec -d ${JUPYTER_SERVER_NAME} /bin/bash -c "${JUPYTER_HOME}/run-jupyter.sh ${NOTEBOOKS_DIR}"

STEP_TIMINGS+=($(date +%s))
fi
Expand Down
Loading
Loading