Update entrypoint-wrapper.sh
Browse files- 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 |
-
|
| 10 |
-
FALLBACK_DATA_LOGS_DIR="/data/logs" # 这是应用之前尝试创建的目录
|
| 11 |
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
# 确保 /app/logs 存在
|
| 15 |
-
# /app/logs 是由 Hugging Face 通过 persistent_storage 挂载的
|
| 16 |
-
# 通常挂载点本身由 HF 创建,我们在此确保它作为目录存在
|
| 17 |
-
# 并且如果需要,可以调整其内部权限(尽管通常 HF 挂载的卷对容器用户可写)
|
| 18 |
if [ ! -d "$TARGET_LOG_DIR" ]; then
|
| 19 |
-
echo "
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
fi
|
| 25 |
else
|
| 26 |
-
echo "
|
| 27 |
fi
|
| 28 |
-
# (可选)显式设置权限,尽管通常 HF 挂载的卷对容器用户可写
|
| 29 |
-
# chown -R 1000:1000 "$TARGET_LOG_DIR" # 假设用户ID/组ID是1000
|
| 30 |
-
# chmod -R 755 "$TARGET_LOG_DIR"
|
| 31 |
|
| 32 |
-
#
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
fi
|
| 40 |
else
|
| 41 |
-
echo "
|
| 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 "$@"
|