Spaces:
Sleeping
Sleeping
Update entrypoint.sh
Browse files- entrypoint.sh +31 -16
entrypoint.sh
CHANGED
|
@@ -1,29 +1,44 @@
|
|
| 1 |
#!/bin/sh
|
| 2 |
set -eu
|
| 3 |
|
| 4 |
-
|
| 5 |
-
|
| 6 |
if [ -z "${APP_ARCHIVE_URL:-}" ]; then
|
| 7 |
-
echo "
|
| 8 |
-
sleep 30
|
| 9 |
exit 1
|
| 10 |
fi
|
| 11 |
|
| 12 |
-
|
| 13 |
-
mkdir -p
|
| 14 |
-
cd
|
| 15 |
-
|
| 16 |
ARCHIVE_FILE="app_archive"
|
| 17 |
|
| 18 |
-
|
| 19 |
-
|
|
|
|
| 20 |
|
| 21 |
-
|
| 22 |
-
#
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
-
|
| 26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
-
|
|
|
|
| 29 |
exec uvicorn app:app --host 0.0.0.0 --port 7860
|
|
|
|
| 1 |
#!/bin/sh
|
| 2 |
set -eu
|
| 3 |
|
| 4 |
+
# 1. 环境检查
|
|
|
|
| 5 |
if [ -z "${APP_ARCHIVE_URL:-}" ]; then
|
| 6 |
+
echo "Error: APP_ARCHIVE_URL is not set." >&2
|
|
|
|
| 7 |
exit 1
|
| 8 |
fi
|
| 9 |
|
| 10 |
+
# 2. 准备目录
|
| 11 |
+
mkdir -p /opt/app
|
| 12 |
+
cd /opt/app
|
|
|
|
| 13 |
ARCHIVE_FILE="app_archive"
|
| 14 |
|
| 15 |
+
# 3. 清洗 Cloudflare 变量 (核心修正:去除换行、空格、单双引号)
|
| 16 |
+
CF_ID="$(printf '%s' "${CF_ACCESS_CLIENT_ID:-}" | tr -d '\r\n "\047')"
|
| 17 |
+
CF_SECRET="$(printf '%s' "${CF_ACCESS_CLIENT_SECRET:-}" | tr -d '\r\n "\047')"
|
| 18 |
|
| 19 |
+
# 4. 组装 Curl (含浏览器伪装,防止 WAF 拦截)
|
| 20 |
+
# -f: 失败报错 -s: 静默 -S: 出错时显示 -L: 跟随重定向
|
| 21 |
+
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
| 22 |
+
set -- -fsSL -A "$UA" "$APP_ARCHIVE_URL" -o "$ARCHIVE_FILE"
|
| 23 |
+
|
| 24 |
+
if [ -n "$CF_ID" ] && [ -n "$CF_SECRET" ]; then
|
| 25 |
+
set -- -H "CF-Access-Client-Id: $CF_ID" \
|
| 26 |
+
-H "CF-Access-Client-Secret: $CF_SECRET" \
|
| 27 |
+
"$@"
|
| 28 |
+
fi
|
| 29 |
|
| 30 |
+
# 5. 下载
|
| 31 |
+
echo "[entrypoint] Downloading..." >&2
|
| 32 |
+
if ! curl "$@"; then
|
| 33 |
+
echo "Error: Download failed." >&2
|
| 34 |
+
exit 1
|
| 35 |
+
fi
|
| 36 |
+
|
| 37 |
+
# 6. 解压
|
| 38 |
+
echo "[entrypoint] Extracting..." >&2
|
| 39 |
+
unzip -oq "$ARCHIVE_FILE" 2>/dev/null || tar -xzf "$ARCHIVE_FILE" 2>/dev/null
|
| 40 |
+
rm -f "$ARCHIVE_FILE"
|
| 41 |
|
| 42 |
+
# 7. 启动
|
| 43 |
+
echo "[entrypoint] Starting app..." >&2
|
| 44 |
exec uvicorn app:app --host 0.0.0.0 --port 7860
|