Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
7b26b0c
[AN-551] Get minimal base image running on a BEE
lucymcnatt May 15, 2025
5d4062a
format
lucymcnatt May 15, 2025
419c357
path update
lucymcnatt May 15, 2025
5af15ea
dont install extensions
lucymcnatt May 15, 2025
f1e5e9c
dont custom parse
lucymcnatt May 15, 2025
c87281c
change home dir
lucymcnatt Jun 2, 2025
3a35e52
switch back
lucymcnatt Jun 2, 2025
f5426b4
check permissions on a directory
lucymcnatt Jun 3, 2025
c16c4e7
remove ls
lucymcnatt Jun 3, 2025
3e615b5
remove pip install
lucymcnatt Jun 5, 2025
78281b6
remove nbstripout install
lucymcnatt Jun 5, 2025
baf5ccf
remove u 0
lucymcnatt Jun 6, 2025
15e6ab6
exec with jupyter user
lucymcnatt Jun 6, 2025
9af0b1c
check some info
lucymcnatt Jun 11, 2025
5b785e9
oops
lucymcnatt Jun 11, 2025
744ed64
dont delete failed runtime
lucymcnatt Jun 13, 2025
1ae6f2f
really dont delete runtime when it fails pls
lucymcnatt Jun 16, 2025
6d08658
dont install
lucymcnatt Jul 18, 2025
b459b97
sudo
lucymcnatt Jul 18, 2025
67130c1
oops
lucymcnatt Jul 18, 2025
5180439
diff sudo
lucymcnatt Jul 18, 2025
b20bc8e
use root user
lucymcnatt Jul 18, 2025
2d39d78
try putting it in the startup script too
lucymcnatt Jul 18, 2025
d094236
updates
lucymcnatt Jul 21, 2025
107c7cb
nb ext
lucymcnatt Jul 24, 2025
6508605
jupyter home updated
lucymcnatt Aug 4, 2025
265dd80
custom path
lucymcnatt Aug 4, 2025
2abb565
nb_ext
lucymcnatt Aug 4, 2025
ccfdc8d
Update gce-init.sh
lucymcnatt Sep 22, 2025
26a726d
rmv welder enabled option
lucymcnatt Oct 21, 2025
2aa770f
notebook not lab
lucymcnatt Oct 21, 2025
eaf7f1f
update extension path
lucymcnatt Oct 22, 2025
3fc61be
fix env var
lucymcnatt Oct 23, 2025
8d2b4f3
misspelling
lucymcnatt Oct 23, 2025
0ac9276
fmt
lucymcnatt Oct 23, 2025
3a6705b
more paths
lucymcnatt Oct 23, 2025
f40eb21
fix
lucymcnatt Oct 23, 2025
d345ed7
kernelspec dir
lucymcnatt Oct 27, 2025
6237b01
more path updates
lucymcnatt Oct 30, 2025
01fe361
delocalize path
lucymcnatt Nov 18, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ final case class GetRuntimeResponse(id: Long,
defaultClientId: Option[String],
clusterImages: Set[RuntimeImage],
scopes: Set[String],
welderEnabled: Boolean,
patchInProgress: Boolean,
customClusterEnvironmentVariables: Map[String, String],
diskConfig: Option[DiskConfig]
Expand Down Expand Up @@ -142,7 +141,6 @@ object GetRuntimeResponse {
runtime.defaultClientId,
runtime.runtimeImages,
runtime.scopes,
runtime.welderEnabled,
runtime.patchInProgress,
runtime.customEnvironmentVariables,
diskConfig
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ final case class Runtime(id: Long,
allowStop: Boolean,
runtimeImages: Set[RuntimeImage],
scopes: Set[String],
welderEnabled: Boolean,
customEnvironmentVariables: Map[String, String],
runtimeConfigId: RuntimeConfigId,
patchInProgress: Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,6 @@ object RuntimeRoutesTestJsonCodec {
defaultClientId,
clusterImages,
scopes,
true,
false,
Map.empty,
None
Expand Down
61 changes: 30 additions & 31 deletions http/src/main/resources/init-resources/gce-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ export MEM_LIMIT=$(memLimit)
export SHM_SIZE=$(shmSize)
export WELDER_MEM_LIMIT=$(welderMemLimit)
export PROXY_SERVER_HOST_NAME=$(proxyServerHostName)
export WELDER_ENABLED=$(welderEnabled)
export NOTEBOOKS_DIR=$(notebooksDir)

START_USER_SCRIPT_URI=$(startUserScriptUri)
Expand All @@ -40,7 +39,8 @@ 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_EXTENSIONS=$JUPYTER_HOME/extensions
JUPYTER_SCRIPTS=$JUPYTER_EXTENSIONS/scripts
JUPYTER_USER_HOME=$(jupyterHomeDirectory)
RSTUDIO_SCRIPTS=/etc/rstudio/scripts
SERVER_CRT=$(proxyServerCrt)
Expand Down Expand Up @@ -311,7 +311,7 @@ log 'Starting up the Jupyter...'
# and wouldn't be remedied by retrying
COMPOSE_FILES=(-f ${DOCKER_COMPOSE_FILES_DIRECTORY}/`basename ${PROXY_DOCKER_COMPOSE}`)
cat ${DOCKER_COMPOSE_FILES_DIRECTORY}/`basename ${PROXY_DOCKER_COMPOSE}`
if [ ! -z "$WELDER_DOCKER_IMAGE" ] && [ "$WELDER_ENABLED" == "true" ] ; then
if [ ! -z "$WELDER_DOCKER_IMAGE" ]; then
COMPOSE_FILES+=(-f ${DOCKER_COMPOSE_FILES_DIRECTORY}/`basename ${WELDER_DOCKER_COMPOSE}`)
cat ${DOCKER_COMPOSE_FILES_DIRECTORY}/`basename ${WELDER_DOCKER_COMPOSE}`
fi
Expand Down Expand Up @@ -351,7 +351,6 @@ JUPYTER_DOCKER_IMAGE=${JUPYTER_DOCKER_IMAGE}
NOTEBOOKS_DIR=${NOTEBOOKS_DIR}
OWNER_EMAIL=${OWNER_EMAIL}
PET_SA_EMAIL=${PET_SA_EMAIL}
WELDER_ENABLED=${WELDER_ENABLED}
MEM_LIMIT=${MEM_LIMIT}
SHM_SIZE=${SHM_SIZE}
WELDER_SERVER_NAME=${WELDER_SERVER_NAME}
Expand Down Expand Up @@ -412,11 +411,9 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
# See: https://github.com/DataBiosphere/leonardo/pull/4465/files
if [ ! "$JUPYTER_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 +444,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 +465,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 +482,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 +500,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 +521,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 $JUPYTER_USER_HOME/gitignore_global"

docker exec $JUPYTER_SERVER_NAME /bin/bash -c "whoami"

# 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 "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 \
docker exec -u 0 $JUPYTER_SERVER_NAME /bin/bash -c "$JUPYTER_SCRIPTS/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/ \
&& cp $JUPYTER_EXTENSIONS/google_sign_in.js $JUPYTER_USER_HOME/.jupyter/custom/ \
&& ls -la $JUPYTER_EXTENSIONS/extension_entry_jupyter.js \
&& cp $JUPYTER_EXTENSIONS/extension_entry_jupyter.js $JUPYTER_USER_HOME/.jupyter/custom/custom.js \
&& cp $JUPYTER_EXTENSIONS/safe-mode.js $JUPYTER_USER_HOME/.jupyter/custom/ \
&& cp $JUPYTER_EXTENSIONS/edit-mode.js $JUPYTER_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 @@ -566,7 +565,7 @@ if [ ! -z "$JUPYTER_DOCKER_IMAGE" ] ; then
STEP_TIMINGS+=($(date +%s))

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
28 changes: 14 additions & 14 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 @@ -185,7 +186,6 @@ if [[ "${ROLE}" == 'Master' ]]; then
export PROXY_DOCKER_IMAGE=$(proxyDockerImage)
export WELDER_DOCKER_IMAGE=$(welderDockerImage)
export CRYPTO_DETECTOR_DOCKER_IMAGE=$(cryptoDetectorDockerImage)
export WELDER_ENABLED=$(welderEnabled)
export NOTEBOOKS_DIR=$(notebooksDir)
export MEM_LIMIT=$(memLimit)
export SHM_SIZE=$(shmSize)
Expand Down Expand Up @@ -291,7 +291,7 @@ EOF

cat /etc/`basename ${PROXY_DOCKER_COMPOSE}`

if [ ! -z ${WELDER_DOCKER_IMAGE} ] && [ "${WELDER_ENABLED}" == "true" ] ; then
if [ ! -z ${WELDER_DOCKER_IMAGE} ]; then
COMPOSE_FILES+=(-f /etc/`basename ${WELDER_DOCKER_COMPOSE}`)
cat /etc/`basename ${WELDER_DOCKER_COMPOSE}`
fi
Expand Down Expand Up @@ -360,7 +360,7 @@ 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_EXTENSIONS}/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}
Expand Down Expand Up @@ -459,7 +459,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 @@ -474,17 +474,17 @@ EOF
&& git config --global core.excludesfile $JUPYTER_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/ \
&& mkdir -p $JUPYTER_HOME/nbconfig"
# docker exec -u 0 $JUPYTER_SERVER_NAME /bin/bash -c "$JUPYTER_SCRIPTS/install_jupyter_contrib_nbextensions.sh \
# && mkdir -p $JUPYTER_USER_HOME/.jupyter/custom/ \
# && cp $JUPYTER_EXTENSIONS/google_sign_in.js $JUPYTER_USER_HOME/.jupyter/custom/ \
# && ls -la $JUPYTER_EXTENSIONS/extension_entry_jupyter.js \
# && cp $JUPYTER_EXTENSIONS/extension_entry_jupyter.js $JUPYTER_USER_HOME/.jupyter/custom/custom.js \
# && cp $JUPYTER_EXTENSIONS/safe-mode.js $JUPYTER_USER_HOME/.jupyter/custom/ \
# && cp $JUPYTER_EXTENSIONS/edit-mode.js $JUPYTER_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}/custom/run-jupyter.sh ${NOTEBOOKS_DIR}"

STEP_TIMINGS+=($(date +%s))
fi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,13 @@ services:
OWNER_EMAIL: "${OWNER_EMAIL}"
PET_SA_EMAIL: "${PET_SA_EMAIL}"
# Value must be the string "true" to enable.
WELDER_ENABLED: "${WELDER_ENABLED}"
NOTEBOOKS_DIR: "${NOTEBOOKS_DIR}"
PIP_USER: "true"
R_LIBS: "${NOTEBOOKS_DIR}/packages"
# The next two lines aren't great. But they're for updating PYTHONPATH, PATH in older than (inclusive) us.gcr.io/broad-dsp-gcr-public/terra-jupyter-base:1.0.2
# We should remove the two lines once we no longer support older images. In the meantime, we need to be careful updating Jupyter base images.
PYTHONPATH: "/etc/jupyter/custom:/usr/lib/spark/python:${NOTEBOOKS_DIR}/packages"
PATH: "/opt/conda/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${NOTEBOOKS_DIR}/.local/bin:${NOTEBOOKS_DIR}/packages/bin"
PATH: "/opt/conda/bin:/opt/uv/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${NOTEBOOKS_DIR}/.local/bin:${NOTEBOOKS_DIR}/packages/bin"
env_file:
- /var/custom_env_vars.env
# See https://docs.docker.com/engine/reference/run/#user-memory-constraints
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,14 @@ services:
OWNER_EMAIL: "${OWNER_EMAIL}"
PET_SA_EMAIL: "${PET_SA_EMAIL}"
# Value must be the string "true" to enable.
WELDER_ENABLED: "${WELDER_ENABLED}"
NOTEBOOKS_DIR: "${NOTEBOOKS_DIR}"
MEM_LIMIT: "${MEM_LIMIT}"
# (1/6/2022) When it's a year from now, consider removing the next two lines.
# The next two lines aren't great. But they're for updating PYTHONPATH, PATH in older than (inclusive) us.gcr.io/broad-dsp-gcr-public/terra-jupyter-base:1.0.2.
# We should remove the two lines once we no longer support older images.
# When we update base image in terra-docker next time, we should verify the paths are still valid
PYTHONPATH: "/etc/jupyter/custom:/usr/lib/spark/python:${NOTEBOOKS_DIR}/packages"
PATH: "/opt/conda/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${HOME}/.local/bin:${NOTEBOOKS_DIR}/packages/bin"
PATH: "/opt/conda/bin:/opt/uv/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${HOME}/.local/bin:${NOTEBOOKS_DIR}/packages/bin"
env_file:
- /var/custom_env_vars.env
# See https://docs.docker.com/engine/reference/run/#user-memory-constraints
Expand Down
1 change: 0 additions & 1 deletion http/src/main/resources/init-resources/notebook.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@
"clusterName": $(clusterName),
"loginHint": $(loginHint),
"googleClientId": $(googleClientId),
"welderEnabled": $(welderEnabled)
}
Loading
Loading