nomid2 commited on
Commit
081851e
·
verified ·
1 Parent(s): 86ca0e0

Update entrypoint-wrapper.sh

Browse files
Files changed (1) hide show
  1. entrypoint-wrapper.sh +21 -17
entrypoint-wrapper.sh CHANGED
@@ -1,35 +1,39 @@
1
  #!/bin/sh
2
 
3
  APP_DATA_DIR="/data"
4
- APP_LOGS_DIR_IN_DATA="/data/logs" # 应用默认尝试使用的日志路径
5
 
6
  echo "Entrypoint wrapper: Attempting to create necessary directories in ephemeral FS..."
7
 
8
- # 1. 创建 /data 目录 (用于 SQLite 等)
9
  echo "Ensuring directory $APP_DATA_DIR exists..."
10
  mkdir -p "$APP_DATA_DIR"
11
  if [ $? -ne 0 ]; then
12
- echo "ERROR: Failed to create $APP_DATA_DIR in ephemeral FS. App data storage might fail."
13
- # exit 1 # 如果此目录关键,可以选择退出
14
  else
15
- echo "$APP_DATA_DIR is ready or was created in ephemeral FS."
16
- # 尝试赋予更明确的权限给用户 1000 (Hugging Face 常用 UID)
17
- # 如果 chown 不可用或失败,至少 chmod 应该尝试
18
- chown -R 1000:1000 "$APP_DATA_DIR" || echo "Warning: chown on $APP_DATA_DIR failed."
19
- chmod -R 755 "$APP_DATA_DIR" || echo "Warning: chmod on $APP_DATA_DIR failed."
20
  fi
21
 
22
- # 2. 创建 /data/logs 目录 (因为应用默认会尝试在这里写日志)
23
- echo "Ensuring directory $APP_LOGS_DIR_IN_DATA exists (app's default log path)..."
 
 
24
  mkdir -p "$APP_LOGS_DIR_IN_DATA"
25
  if [ $? -ne 0 ]; then
26
- echo "ERROR: Failed to create $APP_LOGS_DIR_IN_DATA in ephemeral FS. App logging might fail."
27
- # exit 1 # 如果日志关键,可以选择退出
28
  else
29
- echo "$APP_LOGS_DIR_IN_DATA is ready or was created in ephemeral FS."
30
- chown -R 1000:1000 "$APP_LOGS_DIR_IN_DATA" || echo "Warning: chown on $APP_LOGS_DIR_IN_DATA failed."
31
- chmod -R 755 "$APP_LOGS_DIR_IN_DATA" || echo "Warning: chmod on $APP_LOGS_DIR_IN_DATA failed."
 
 
32
  fi
33
 
34
- echo "Entrypoint wrapper: Starting application with arguments: $@" # 此时 $@ 应该是空的
35
  exec /one-api "$@"
 
1
  #!/bin/sh
2
 
3
  APP_DATA_DIR="/data"
4
+ APP_LOGS_DIR_IN_DATA="/data/logs"
5
 
6
  echo "Entrypoint wrapper: Attempting to create necessary directories in ephemeral FS..."
7
 
8
+ # 1. 创建 /data 目录
9
  echo "Ensuring directory $APP_DATA_DIR exists..."
10
  mkdir -p "$APP_DATA_DIR"
11
  if [ $? -ne 0 ]; then
12
+ echo "ERROR: Failed to create $APP_DATA_DIR. Exiting."
13
+ exit 1 # 如果 /data 都创建不了,后面基本没戏
14
  else
15
+ echo "$APP_DATA_DIR was created or already exists."
16
+ # 此时,我们知道 /data 存在了。
17
+ # 它的权限可能不允许当前用户(如 uid 1000)在其内部创建子目录,
18
+ # 或者允许但我们之前的 chown/chmod 失败了。
19
+ # 我们现在直接尝试创建 /data/logs
20
  fi
21
 
22
+ # 2. 在已存在的 /data 目录下创建 /data/logs
23
+ echo "Ensuring directory $APP_LOGS_DIR_IN_DATA exists..."
24
+ # 假设当前用户(运行此脚本的用户)如果能创建 /data,
25
+ # 也应该能(或者被允许)在其内部创建子目录,除非 /data 的默认权限非常严格。
26
  mkdir -p "$APP_LOGS_DIR_IN_DATA"
27
  if [ $? -ne 0 ]; then
28
+ echo "ERROR: Failed to create $APP_LOGS_DIR_IN_DATA. App logging might fail."
29
+ # 如果日志是关键的,这里也可以 exit 1
30
  else
31
+ echo "$APP_LOGS_DIR_IN_DATA was created or already exists."
32
+ # 由于在 /data 上的 chown/chmod 已失败,在此处对 /data/logs 尝试也可能失败
33
+ # 但如果 mkdir 成功了,至少目录存在了,应用或许能写入。
34
+ # chown -R 1000:1000 "$APP_LOGS_DIR_IN_DATA" || echo "Warning: chown on $APP_LOGS_DIR_IN_DATA failed."
35
+ # chmod -R 775 "$APP_LOGS_DIR_IN_DATA" || echo "Warning: chmod on $APP_LOGS_DIR_IN_DATA failed."
36
  fi
37
 
38
+ echo "Entrypoint wrapper: Starting application with arguments: $@"
39
  exec /one-api "$@"