#!/bin/sh # entrypoint.sh # 如果任何命令失败,立即退出 set -e # --- 配置 --- TEMPLATE_FILE="/app/api.template.yaml" OUTPUT_FILE="/app/api.yaml" # 定义期望的环境变量名称 (主要用于错误消息) PROVIDER_SECRET_ENV_VAR_NAME="SECRET_PROVIDER_API_KEY" UNI_API_SECRET_ENV_VAR_NAME="SECRET_UNI_API_KEY" # --- 检查环境变量 --- # 直接使用期望的 Secret 名称进行检查 # 如果变量未设置,': "..."?error message' 会导致脚本因错误退出 : "${SECRET_PROVIDER_API_KEY?错误:环境变量 $PROVIDER_SECRET_ENV_VAR_NAME 未设置。请在 Space Secrets 中添加它。}" : "${SECRET_UNI_API_KEY?错误:环境变量 $UNI_API_SECRET_ENV_VAR_NAME 未设置。请在 Space Secrets 中添加它。}" # --- 生成 api.yaml --- echo "正在从模板 $TEMPLATE_FILE 生成 $OUTPUT_FILE ..." # 直接在 sed 中使用期望的 Secret 名称进行替换 # Shell 会自动替换 ${SECRET_...} 为环境变量的值 sed \ -e "s|__PROVIDER_API_KEY_PLACEHOLDER__|${SECRET_PROVIDER_API_KEY}|g" \ -e "s|__UNI_API_KEY_PLACEHOLDER__|${SECRET_UNI_API_KEY}|g" \ "${TEMPLATE_FILE}" > "${OUTPUT_FILE}" # (可选但推荐)设置文件权限 chmod 600 "${OUTPUT_FILE}" echo "$OUTPUT_FILE 已成功生成。" # --- 执行原始命令 --- echo "正在启动应用程序: $@" exec "$@"