Create entrypoint.sh
Browse files- entrypoint.sh +38 -0
entrypoint.sh
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/sh
|
| 2 |
+
# entrypoint.sh
|
| 3 |
+
|
| 4 |
+
# 如果任何命令失败,立即退出
|
| 5 |
+
set -e
|
| 6 |
+
|
| 7 |
+
# --- 配置 ---
|
| 8 |
+
TEMPLATE_FILE="/app/api.template.yaml"
|
| 9 |
+
OUTPUT_FILE="/app/api.yaml"
|
| 10 |
+
|
| 11 |
+
# 定义期望的环境变量名称 (主要用于错误消息)
|
| 12 |
+
PROVIDER_SECRET_ENV_VAR_NAME="SECRET_PROVIDER_API_KEY"
|
| 13 |
+
UNI_API_SECRET_ENV_VAR_NAME="SECRET_UNI_API_KEY"
|
| 14 |
+
|
| 15 |
+
# --- 检查环境变量 ---
|
| 16 |
+
# 直接使用期望的 Secret 名称进行检查
|
| 17 |
+
# 如果变量未设置,': "..."?error message' 会导致脚本因错误退出
|
| 18 |
+
: "${SECRET_PROVIDER_API_KEY?错误:环境变量 $PROVIDER_SECRET_ENV_VAR_NAME 未设置。请在 Space Secrets 中添加它。}"
|
| 19 |
+
: "${SECRET_UNI_API_KEY?错误:环境变量 $UNI_API_SECRET_ENV_VAR_NAME 未设置。请在 Space Secrets 中添加它。}"
|
| 20 |
+
|
| 21 |
+
# --- 生成 api.yaml ---
|
| 22 |
+
echo "正在从模板 $TEMPLATE_FILE 生成 $OUTPUT_FILE ..."
|
| 23 |
+
|
| 24 |
+
# 直接在 sed 中使用期望的 Secret 名称进行替换
|
| 25 |
+
# Shell 会自动替换 ${SECRET_...} 为环境变量的值
|
| 26 |
+
sed \
|
| 27 |
+
-e "s|__PROVIDER_API_KEY_PLACEHOLDER__|${SECRET_PROVIDER_API_KEY}|g" \
|
| 28 |
+
-e "s|__UNI_API_KEY_PLACEHOLDER__|${SECRET_UNI_API_KEY}|g" \
|
| 29 |
+
"${TEMPLATE_FILE}" > "${OUTPUT_FILE}"
|
| 30 |
+
|
| 31 |
+
# (可选但推荐)设置文件权限
|
| 32 |
+
chmod 600 "${OUTPUT_FILE}"
|
| 33 |
+
|
| 34 |
+
echo "$OUTPUT_FILE 已成功生成。"
|
| 35 |
+
|
| 36 |
+
# --- 执行原始命令 ---
|
| 37 |
+
echo "正在启动应用程序: $@"
|
| 38 |
+
exec "$@"
|