#!/usr/bin/env bash set -euo pipefail export BLUE_DOCKER="${BLUE_DOCKER:-1}" export BLUE_ONNX_GPU="${BLUE_ONNX_GPU:-1}" export BLUE_SERVE_MODE="${BLUE_SERVE_MODE:-serverless}" export BLUE_SKIP_GRADIO="${BLUE_SKIP_GRADIO:-1}" export PYTHONPATH="${PYTHONPATH:-/app}" export GRADIO_ANALYTICS_ENABLED="${GRADIO_ANALYTICS_ENABLED:-False}" export HF_HUB_DISABLE_TELEMETRY="${HF_HUB_DISABLE_TELEMETRY:-1}" export GRADIO_SERVER_NAME="${GRADIO_SERVER_NAME:-0.0.0.0}" export GRADIO_SERVER_PORT="${GRADIO_SERVER_PORT:-${PORT:-7860}}" export PORT="${PORT:-$GRADIO_SERVER_PORT}" # onnxruntime-gpu wheels ship NVIDIA libs under site-packages (venv or system). PY_SITE="$(python -c 'import site; print(site.getsitepackages()[0])')" for libdir in \ "${PY_SITE}/nvidia/cudnn/lib" \ "${PY_SITE}/nvidia/cublas/lib" \ "${PY_SITE}/nvidia/cuda_runtime/lib" \ "${PY_SITE}/nvidia/cufft/lib" \ "${PY_SITE}/nvidia/curand/lib" \ "${PY_SITE}/nvidia/cusolver/lib" \ "${PY_SITE}/nvidia/cusparse/lib" \ "${VIRTUAL_ENV}/lib/python3.12/site-packages/nvidia/cudnn/lib" \ "${VIRTUAL_ENV}/lib/python3.12/site-packages/nvidia/cublas/lib" do if [[ -d "$libdir" ]]; then export LD_LIBRARY_PATH="${libdir}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" fi done echo "[entrypoint] pwd=$(pwd) python=$(command -v python)" MODE="${BLUE_SERVE_MODE:-serverless}" echo "[entrypoint] mode=${MODE}" if [[ "$MODE" == "serverless" ]]; then # Keep the process attached; log uncaught errors instead of silent exit. exec python -u /app/docker/rp_handler.py fi export BLUE_SKIP_GRADIO=0 echo "[entrypoint] listening on ${GRADIO_SERVER_NAME}:${PORT}" exec python -u app.py