microservices/deployment-service/snakeapi_service/entrypoint.sh

30 lines
945 B
Bash
Raw Permalink Normal View History

2025-04-25 09:21:18 -07:00
#!/usr/bin/env bash
2025-05-02 00:12:05 -07:00
set -eux
2025-04-29 13:28:25 -07:00
NOTEBOOK_DIR="notebooks"
2025-04-29 15:01:23 -07:00
mkdir -p "${NOTEBOOK_DIR}"
2025-04-29 11:40:06 -07:00
2025-05-02 00:12:05 -07:00
# sync notebooks from S3
2025-04-29 15:01:23 -07:00
aws --endpoint-url "$AWS_ENDPOINT_URL_S3" --region "$AWS_REGION" \
2025-05-02 00:12:05 -07:00
s3 sync "s3://$COMMON_BUCKET/$INSTANCE_PREFIX/notebooks/" "${NOTEBOOK_DIR}/"
# pick latest notebook
latest_ipynb=$(ls -t "${NOTEBOOK_DIR}"/*.ipynb | head -n1)
cp "$latest_ipynb" "${NOTEBOOK_DIR}/notebook.ipynb"
# convert notebook to script
jupyter nbconvert --to script "${NOTEBOOK_DIR}/notebook.ipynb" \
--output notebook --output-dir "${NOTEBOOK_DIR}"
# remove IPython magics only
sed -i '/get_ipython()/d' "${NOTEBOOK_DIR}/notebook.py"
sed -i '/^!/d' "${NOTEBOOK_DIR}/notebook.py"
sed -i '/^%/d' "${NOTEBOOK_DIR}/notebook.py"
2025-04-25 09:21:18 -07:00
2025-05-02 00:12:05 -07:00
# remove standalone Flask run calls
sed -i '/app\.run(/d' "${NOTEBOOK_DIR}/notebook.py"
2025-04-25 09:21:18 -07:00
2025-05-02 00:12:05 -07:00
# export path and launch server
export NOTEBOOK_PATH="$(pwd)/${NOTEBOOK_DIR}/notebook.py"
2025-04-30 15:09:22 -07:00
exec python snakeapi_server.py