Create entrypoint-wrapper.sh
Browse files- entrypoint-wrapper.sh +50 -0
entrypoint-wrapper.sh
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 "$@"
|