|
#!/bin/bash |
|
|
|
|
|
handle_error() { |
|
echo "Error: $1" |
|
exit 1 |
|
} |
|
|
|
|
|
if [ ! -d "/data" ]; then |
|
mkdir -p /data || handle_error "No se pudo crear el directorio /data" |
|
echo "Directorio /data creado para almacenamiento persistente" |
|
fi |
|
|
|
|
|
if [ ! -w "/data" ]; then |
|
echo "Advertencia: No se tienen permisos de escritura en /data. Algunos datos pueden no ser persistentes." |
|
fi |
|
|
|
|
|
chown -R ${NB_UID}:${NB_GID} /data |
|
|
|
|
|
source /etc/environment |
|
|
|
|
|
if [ -z "$JUPYTER_TOKEN" ]; then |
|
handle_error "El token de JupyterLab está vacío. Asegúrate de configurar el secreto JUPYTER_TOKEN en la configuración del Space." |
|
fi |
|
|
|
|
|
if command -v nvidia-smi &> /dev/null; then |
|
echo "GPU detectada. Configurando entorno para uso de GPU." |
|
export NVIDIA_VISIBLE_DEVICES=all |
|
export NVIDIA_DRIVER_CAPABILITIES=compute,utility |
|
else |
|
echo "No se detectó GPU. Se utilizará CPU." |
|
fi |
|
|
|
|
|
jupyter lab --ip=0.0.0.0 --port=${JUPYTERLAB_PORT} --no-browser --allow-root \ |
|
--NotebookApp.base_url=/jupyter --NotebookApp.token=${JUPYTER_TOKEN} \ |
|
--notebook-dir=/data & |
|
|
|
|
|
touch /tmp/nginx.pid |
|
chmod 644 /tmp/nginx.pid |
|
|
|
|
|
nginx -g "daemon off;" -c /etc/nginx/nginx.conf || handle_error "Fallo al iniciar Nginx" |