Skip to content

Commit

Permalink
merge changes from template
Browse files Browse the repository at this point in the history
  • Loading branch information
claytonparnell committed Jan 15, 2025
1 parent 50b4ffe commit 161c000
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 8 deletions.
3 changes: 2 additions & 1 deletion build_artifacts/v2/v2.3/v2.3.0/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,12 @@ RUN if [[ -z $ARG_BASED_ENV_IN_FILENAME ]] ; \
micromamba install -y --name base --file /tmp/$ENV_IN_FILENAME && \
mkdir -p $SAGEMAKER_RECOVERY_MODE_HOME && \
chown $MAMBA_USER:$MAMBA_USER $SAGEMAKER_RECOVERY_MODE_HOME && \
SUPERVISOR_VERSION=$(grep "^conda-forge::supervisor\[" /tmp/$ENV_IN_FILENAME) && \
JUPYTERLAB_VERSION=$(grep "^conda-forge::jupyterlab\[" /tmp/$ENV_IN_FILENAME) && \
SAGEMAKER_JUPYTERLAB_VERSION=$(grep "^conda-forge::sagemaker-jupyterlab-extension" /tmp/$ENV_IN_FILENAME) && \
echo "Installing in sagemaker-recovery-mode micromamba environment: $JUPYTERLAB_VERSION $SAGEMAKER_JUPYTERLAB_VERSION" && \
micromamba create -n sagemaker-recovery-mode && \
micromamba install -n sagemaker-recovery-mode -y $JUPYTERLAB_VERSION $SAGEMAKER_JUPYTERLAB_VERSION && \
micromamba install -n sagemaker-recovery-mode -y $JUPYTERLAB_VERSION $SAGEMAKER_JUPYTERLAB_VERSION $SUPERVISOR_VERSION && \
micromamba clean --all --yes --force-pkgs-dirs && \
rm -rf /tmp/*.in && \
sudo ln -s $(which python3) /usr/bin/python && \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ command=start-code-editor
autostart=true
autorestart=true
stdout_logfile=/dev/fd/1 ; Redirect web server logs to stdout
stderr_logfile=/dev/fd/1
stdout_logfile_maxbytes = 0 ; Fix: https://github.com/Supervisor/supervisor/issues/935
stderr_logfile_maxbytes = 0 ; Fix: https://github.com/Supervisor/supervisor/issues/935
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set -e
eval "$(micromamba shell hook --shell=bash)"

if [ -n "$SAGEMAKER_RECOVERY_MODE" ]; then
export HOME=$SAGEMAKER_RECOVERY_MODE
export HOME=$SAGEMAKER_RECOVERY_MODE_HOME
# Activate conda environment `sagemaker-recovery-mode`
micromamba activate sagemaker-recovery-mode
else
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import json
from sys import argv


# merges json files file1 and file2, keys in file2 overwriting any keys that already exist in file1
def main():
file1, file2 = argv[1], argv[2]
# Read JSON data from files
with open(file1, "r") as f1, open(file2, "r") as f2:
data1 = json.load(f1)
data2 = json.load(f2)

# Merge the data (simple update)
merged_data = {**data1, **data2}

# Write the merged data to a new file
with open(file1, "w") as f:
json.dump(merged_data, f)


if __name__ == "__main__":
main()
Original file line number Diff line number Diff line change
@@ -1,19 +1,59 @@
#!/bin/bash
set -e

EFS_MOUNT_POINT="/opt/amazon/sagemaker"
EBS_MOUNT_POINT="/home/sagemaker-user"

persistent_settings_folder="${EBS_MOUNT_POINT}/sagemaker-code-editor-server-data"
default_settings_folder="${EFS_MOUNT_POINT}/sagemaker-code-editor-server-data"

override_machine_settings() {
# create a new settings file with preset defaults or merge the defaults into the existing settings file
local settings_relative_path="data/Machine"
local settings_file_path_suffix="${settings_relative_path}/settings.json"
local persistent_machine_settings_file="${persistent_settings_folder}/${settings_file_path_suffix}"
local default_machine_settings_file="${default_settings_folder}/${settings_file_path_suffix}"

if [ ! -f "$persistent_machine_settings_file" ]; then
# copy settings file to EBS if it doesn't exist in EBS
mkdir -p "${persistent_settings_folder}/${settings_relative_path}"
cp "$default_machine_settings_file" "$persistent_machine_settings_file"
echo "Created persistent settings file with default settings at $persistent_machine_settings_file"
else
# if it does exist then merge settings
echo "File already exists: ${persistent_machine_settings_file}. Merging default settings with existing settings."
python3 /usr/local/bin/merge-settings-util.py "$persistent_machine_settings_file" "$default_machine_settings_file"
fi
}

copy_user_settings() {
local settings_relative_path="data/User"
local settings_file_path_suffix="${settings_relative_path}/settings.json"
local persistent_user_settings_file="${persistent_settings_folder}/${settings_file_path_suffix}"
local default_user_settings_file="${default_settings_folder}/${settings_file_path_suffix}"
if [ ! -f "$persistent_user_settings_file" ]; then
# copy user settings file to EBS if it doesn't exist in EBS
mkdir -p "${persistent_settings_folder}/${settings_relative_path}"
cp "$default_user_settings_file" "$persistent_user_settings_file"
echo "Created persistent settings file with default settings at $persistent_user_settings_file"
fi
}

eval "$(micromamba shell hook --shell=bash)"

# Activate conda environment 'base', which is the default environment for sagemaker-distribution
micromamba activate base

# Start code-editor server
if [ -n "$SAGEMAKER_APP_TYPE_LOWERCASE" ]; then
# SAGEMAKER_APP_TYPE is set, indicating the server is running within a SageMaker
# app. Configure the base url to be `/<app-type-in-lower-case>/default`.
# SAGEMAKER_APP_TYPE is set, indicating the server is running within a SageMaker app.
override_machine_settings
copy_user_settings
# Configure the base url to be `/<app-type-in-lower-case>/default`.
sagemaker-code-editor --host 0.0.0.0 --port 8888 \
--without-connection-token \
--base-path "/$SAGEMAKER_APP_TYPE_LOWERCASE/default" \
--server-data-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data \
--server-data-dir $persistent_settings_folder \
--extensions-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions \
--user-data-dir /opt/amazon/sagemaker/sagemaker-code-editor-user-data
else
Expand All @@ -22,4 +62,4 @@ else
--server-data-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data \
--extension-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions \
--user-data-dir /opt/amazon/sagemaker/sagemaker-code-editor-user-data
fi
fi
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -e
eval "$(micromamba shell hook --shell=bash)"

if [ -n "$SAGEMAKER_RECOVERY_MODE" ]; then
export HOME=$SAGEMAKER_RECOVERY_MODE
export HOME=$SAGEMAKER_RECOVERY_MODE_HOME
# Activate conda environment `sagemaker-recovery-mode`
micromamba activate sagemaker-recovery-mode
else
Expand Down
2 changes: 1 addition & 1 deletion build_artifacts/v2/v2.3/v2.3.0/gpu.env.in
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ conda-forge::pyhive[version='>=0.7.0,<1.0.0']
conda-forge::python-gssapi[version='>=1.9.0,<2.0.0']
conda-forge::tf-keras[version='>=2.17.0,<3.0.0']
conda-forge::git-remote-codecommit[version='>=1.16,<2.0.0']
conda-forge::sentencepiece[version='>=0.1.99,<1.0.0']
conda-forge::sentencepiece[version='>=0.1.99,<0.2.0']
conda-forge::docker-cli[version='>=27.1.1,<28.0.0']
conda-forge::libmamba[version='<2.0.0']
conda-forge::dash[version='2.18.1']

0 comments on commit 161c000

Please sign in to comment.