Update entrypoint-wrapper.sh
Browse files- 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 目录
|
| 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
|
| 13 |
-
|
| 14 |
else
|
| 15 |
-
echo "$APP_DATA_DIR
|
| 16 |
-
#
|
| 17 |
-
#
|
| 18 |
-
|
| 19 |
-
|
| 20 |
fi
|
| 21 |
|
| 22 |
-
# 2.
|
| 23 |
-
echo "Ensuring directory $APP_LOGS_DIR_IN_DATA exists
|
|
|
|
|
|
|
| 24 |
mkdir -p "$APP_LOGS_DIR_IN_DATA"
|
| 25 |
if [ $? -ne 0 ]; then
|
| 26 |
-
echo "ERROR: Failed to create $APP_LOGS_DIR_IN_DATA
|
| 27 |
-
# exit 1
|
| 28 |
else
|
| 29 |
-
echo "$APP_LOGS_DIR_IN_DATA
|
| 30 |
-
|
| 31 |
-
|
|
|
|
|
|
|
| 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 "$@"
|