File size: 1,644 Bytes
9f6a881
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/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