Spaces:
Runtime error
Runtime error
set -e # Exit the script if any statement returns a non-true return value | |
# ---------------------------------------------------------------------------- # | |
# Function Definitions # | |
# ---------------------------------------------------------------------------- # | |
execute_script() { | |
local script_path=$1 | |
local script_msg=$2 | |
if [[ -f ${script_path} ]]; then | |
echo "${script_msg}" | |
bash ${script_path} | |
fi | |
} | |
setup_ssh() { | |
if [[ $PUBLIC_KEY ]]; then | |
echo "Setting up SSH..." | |
mkdir -p ~/.ssh | |
echo -e "${PUBLIC_KEY}\n" >> ~/.ssh/authorized_keys | |
chmod 700 -R ~/.ssh | |
if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then | |
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -q -N '' | |
fi | |
if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then | |
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -q -N '' | |
fi | |
if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then | |
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -q -N '' | |
fi | |
if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then | |
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -q -N '' | |
fi | |
service ssh start | |
echo "SSH host keys:" | |
cat /etc/ssh/*.pub | |
fi | |
} | |
export_env_vars() { | |
echo "Exporting environment variables..." | |
printenv | grep -E '^RUNPOD_|^PATH=|^_=' | awk -F = '{ print "export " $1 "=\"" $2 "\"" }' >> /etc/rp_environment | |
echo 'source /etc/rp_environment' >> ~/.bashrc | |
} | |
start_jupyter() { | |
if [[ $JUPYTER_PASSWORD ]]; then | |
echo "Starting Jupyter Lab..." | |
mkdir -p /workspace && \ | |
cd / && \ | |
nohup jupyter lab --allow-root \ | |
--no-browser \ | |
--port=8888 \ | |
--ip=* \ | |
--FileContentsManager.delete_to_trash=False \ | |
--ContentsManager.allow_hidden=True \ | |
--ServerApp.terminado_settings='{"shell_command":["/bin/bash"]}' \ | |
--ServerApp.token=${JUPYTER_PASSWORD} \ | |
--ServerApp.allow_origin=* \ | |
--ServerApp.preferred_dir=/workspace &> /workspace/logs/jupyter.log & | |
echo "Jupyter Lab started" | |
fi | |
} | |
configure_filezilla() { | |
if [[ ! -z "${RUNPOD_PUBLIC_IP}" ]]; then | |
echo "Configuring FileZilla for SFTP access..." | |
# The configuration steps remain unchanged | |
# ... | |
else | |
echo "RUNPOD_PUBLIC_IP is not set. Skipping FileZilla configuration." | |
fi | |
} | |
# ---------------------------------------------------------------------------- # | |
# Main Program # | |
# ---------------------------------------------------------------------------- # | |
echo "Container Started, configuration in progress..." | |
execute_script "/pre_start.sh" "Running pre-start script..." | |
setup_ssh | |
configure_filezilla | |
start_jupyter | |
export_env_vars | |
execute_script "/post_start.sh" "Running post-start script..." | |
echo "Container is READY!" | |
sleep infinity | |