nomid2 commited on
Commit
08ad1c9
·
verified ·
1 Parent(s): 786e187

Update entrypoint-wrapper.sh

Browse files
Files changed (1) hide show
  1. entrypoint-wrapper.sh +22 -36
entrypoint-wrapper.sh CHANGED
@@ -1,50 +1,36 @@
1
  #!/bin/sh
2
 
3
- # --------------------------------------------------------------------------
4
- # 脚本目标:
5
- # 1. 确保应用指定的日志目录 (/app/logs) 存在且可写。
6
- # 2. 如果应用仍然尝试创建 /data/logs (之前的错误),也确保它存在。
7
- # --------------------------------------------------------------------------
8
 
9
- TARGET_LOG_DIR="/app/logs" # 这是我们通过 CMD 指定的日志目录
10
- FALLBACK_DATA_LOGS_DIR="/data/logs" # 这是应用之前尝试创建的目录
11
 
12
- echo "Entrypoint wrapper: Ensuring log directories exist..."
13
-
14
- # 确保 /app/logs 存在
15
- # /app/logs 是由 Hugging Face 通过 persistent_storage 挂载的
16
- # 通常挂载点本身由 HF 创建,我们在此确保它作为目录存在
17
- # 并且如果需要,可以调整其内部权限(尽管通常 HF 挂载的卷对容器用户可写)
18
  if [ ! -d "$TARGET_LOG_DIR" ]; then
19
- echo "Creating directory: $TARGET_LOG_DIR"
20
- mkdir -p "$TARGET_LOG_DIR"
21
- if [ $? -ne 0 ]; then
22
- echo "ERROR: Failed to create $TARGET_LOG_DIR"
23
- # 可以选择在这里退出,或者继续尝试
24
- fi
25
  else
26
- echo "Directory $TARGET_LOG_DIR already exists."
27
  fi
28
- # (可选)显式设置权限,尽管通常 HF 挂载的卷对容器用户可写
29
- # chown -R 1000:1000 "$TARGET_LOG_DIR" # 假设用户ID/组ID是1000
30
- # chmod -R 755 "$TARGET_LOG_DIR"
31
 
32
- # (可选)如果应用仍然可能尝试 /data/logs,也处理一下
33
- # /data 也是一个持久化存储挂载点
34
- if [ ! -d "$FALLBACK_DATA_LOGS_DIR" ]; then
35
- echo "Creating directory: $FALLBACK_DATA_LOGS_DIR (as a fallback precaution)"
36
- mkdir -p "$FALLBACK_DATA_LOGS_DIR"
37
- if [ $? -ne 0 ]; then
38
- echo "ERROR: Failed to create $FALLBACK_DATA_LOGS_DIR"
39
- fi
40
  else
41
- echo "Directory $FALLBACK_DATA_LOGS_DIR already exists."
42
  fi
43
- # (可选)权限设置
44
- # chown -R 1000:1000 "$FALLBACK_DATA_LOGS_DIR"
45
- # chmod -R 755 "$FALLBACK_DATA_LOGS_DIR"
46
 
 
 
 
 
47
 
48
  echo "Entrypoint wrapper: Starting application with arguments: $@"
49
- # 执行原始的 ENTRYPOINT (/one-api) 并传递 CMD 参数
50
  exec /one-api "$@"
 
1
  #!/bin/sh
2
 
3
+ TARGET_LOG_DIR="/app/logs" # 这是 CMD 指定的日志目录
4
+ APP_DATA_DIR="/data" # 这是应用数据目录
 
 
 
5
 
6
+ echo "Entrypoint wrapper: Checking persistent storage mount points..."
 
7
 
8
+ # 检查 /app/logs 是否存在并且可写 (由 Hugging Face 挂载)
 
 
 
 
 
9
  if [ ! -d "$TARGET_LOG_DIR" ]; then
10
+ echo "ERROR: Log directory $TARGET_LOG_DIR (persistent mount) does not exist!"
11
+ # exit 1 # 如果此目录必须存在,可以选择退出
12
+ elif [ ! -w "$TARGET_LOG_DIR" ]; then
13
+ echo "ERROR: Log directory $TARGET_LOG_DIR (persistent mount) is not writable!"
14
+ # exit 1
 
15
  else
16
+ echo "Log directory $TARGET_LOG_DIR is present and writable."
17
  fi
 
 
 
18
 
19
+ # 检查 /data 是否存在并且可写 (由 Hugging Face 挂载)
20
+ if [ ! -d "$APP_DATA_DIR" ]; then
21
+ echo "ERROR: Data directory $APP_DATA_DIR (persistent mount) does not exist!"
22
+ # exit 1
23
+ elif [ ! -w "$APP_DATA_DIR" ]; then
24
+ echo "ERROR: Data directory $APP_DATA_DIR (persistent mount) is not writable!"
25
+ # exit 1
 
26
  else
27
+ echo "Data directory $APP_DATA_DIR is present and writable."
28
  fi
 
 
 
29
 
30
+ # 之前的错误是应用尝试 "mkdir /app/logs" 或 "mkdir /data/logs"
31
+ # 这暗示应用自己会尝试创建这些目录,而不是直接在其中写文件。
32
+ # 如果 HF 已经正确挂载了这些目录,应用应该能直接使用它们。
33
+ # 我们不再在脚本中尝试 `mkdir -p` 这些挂载点本身或其父目录。
34
 
35
  echo "Entrypoint wrapper: Starting application with arguments: $@"
 
36
  exec /one-api "$@"