File size: 1,800 Bytes
4b0a847
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
51
52
53
#!/bin/sh
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 "$@"