Spaces:
Sleeping
Sleeping
| set -e | |
| echo "Starting Uni API service..." | |
| # 检查URL环境变量 | |
| if [ -z "$API_YAML_URL" ]; then | |
| echo "ERROR: Environment variable 'API_YAML_URL' is missing or empty. Exiting." | |
| exit 1 | |
| fi | |
| # 使用Dockerfile中预先创建并设置权限的文件路径 | |
| CONFIG_FILE_PATH="/home/api.yaml" | |
| # 打印当前权限信息(调试用) | |
| echo "DEBUG: Current permissions of $CONFIG_FILE_PATH: $(ls -la $CONFIG_FILE_PATH 2>/dev/null || echo 'File not found')" | |
| echo "DEBUG: Current user: $(id)" | |
| # 尝试直接下载到目标路径 | |
| echo "INFO: Downloading configuration from URL..." | |
| if ! curl -s -S -f --connect-timeout 10 --max-time 30 -o "$CONFIG_FILE_PATH" "$API_YAML_URL"; then | |
| # 如果直接下载失败,尝试下载到用户目录然后复制 | |
| echo "WARN: Direct download failed, trying alternative approach..." | |
| TMP_CONFIG="/home/user/api.yaml.tmp" | |
| if curl -s -S -f --connect-timeout 10 --max-time 30 -o "$TMP_CONFIG" "$API_YAML_URL"; then | |
| echo "INFO: Downloaded to temporary location, trying to copy..." | |
| # 尝试使用cat和重定向写入目标文件 | |
| cat "$TMP_CONFIG" > "$CONFIG_FILE_PATH" && rm "$TMP_CONFIG" | |
| if [ $? -ne 0 ]; then | |
| echo "ERROR: Could not write to destination file. Using temporary file." | |
| # 设置环境变量,如果应用支持的话 | |
| export UNI_API_CONFIG="$TMP_CONFIG" | |
| CONFIG_FILE_PATH="$TMP_CONFIG" | |
| fi | |
| else | |
| echo "ERROR: All download attempts failed." | |
| exit 1 | |
| fi | |
| fi | |
| # 验证配置文件 | |
| if [ -s "$CONFIG_FILE_PATH" ]; then | |
| echo "INFO: Configuration file available at $CONFIG_FILE_PATH ($(wc -c < "$CONFIG_FILE_PATH") bytes)." | |
| else | |
| echo "ERROR: Configuration file is empty or does not exist." | |
| exit 1 | |
| fi | |
| # 执行主程序 | |
| echo "INFO: Starting application..." | |
| cd /home | |
| exec python main.py "$@" |