leowuming commited on
Commit
1c4b8f7
·
verified ·
1 Parent(s): 027e47a

Update docker/docker-entrypoint.sh

Browse files
Files changed (1) hide show
  1. docker/docker-entrypoint.sh +37 -21
docker/docker-entrypoint.sh CHANGED
@@ -1,41 +1,57 @@
1
  #!/bin/bash
 
 
2
  set -e
3
 
4
- # 检查 STORAGE_DIR 环境变量是否设置
5
- if [ -z "$STORAGE_DIR" ]; then
6
- echo "================================================================"
7
- echo "⚠️ ⚠️ ⚠️ WARNING: STORAGE_DIR environment variable is not set! ⚠️ ⚠️ ⚠️"
8
- echo ""
9
- echo "Not setting this will result in data loss on container restart."
10
- echo "Please ensure you are running this container via the official docker-compose."
11
- echo "================================================================"
12
- fi
13
-
14
- # ==================== 关键权限修复代码 ====================
15
- #
 
 
 
 
 
16
  # 在 Hugging Face Spaces 等环境中,持久化存储 (/data) 默认归 root 所有。
17
  # 我们的 Node.js 应用以普通用户运行,因此没有写入权限。
18
  # 下面的命令利用 sudo 将 /data 目录的所有权递归地 (-R)
19
- # 变更为当前运行脚本的用户 (whoami),从而解决权限问题。
20
  #
21
- echo "[STARTUP SCRIPT] Fixing permissions for persistent storage directory at /data..."
22
- sudo chown -R "$(whoami)":"$(whoami)" /data && echo "[STARTUP SCRIPT] Permissions for /data fixed successfully." || echo "[STARTUP SCRIPT] Warning: Could not fix permissions for /data."
23
- #
24
- # ======================== 修复代码结束 ========================
 
 
 
 
 
 
25
 
26
 
 
 
 
27
  # 以后台进程 (&) 的方式启动主服务器和收集器
28
  {
29
  cd /app/server/ &&
30
- echo "[STARTUP SCRIPT] Running Prisma generate..." &&
31
  npx prisma generate --schema=./prisma/schema.prisma &&
32
- echo "[STARTUP SCRIPT] Running Prisma migrate..." &&
33
  npx prisma migrate deploy --schema=./prisma/schema.prisma &&
34
- echo "[STARTUP SCRIPT] Starting main server..." &&
35
  node /app/server/index.js
36
  } &
37
  {
38
- echo "[STARTUP SCRIPT] Starting collector service..." &&
39
  node /app/collector/index.js;
40
  } &
41
 
 
1
  #!/bin/bash
2
+
3
+ # 遇到任何错误立即退出脚本
4
  set -e
5
 
6
+ # ====================================================================
7
+ # 第一步:环境诊断
8
+ # ====================================================================
9
+ echo "[DEBUG] --- Starting Diagnostic ---" >&2
10
+ echo "[DEBUG] Running as user: $(whoami)" >&2
11
+ echo "[DEBUG] UID is: $(id -u)" >&2
12
+ echo "[DEBUG] STORAGE_DIR is set to: $STORAGE_DIR" >&2
13
+ echo "[DEBUG] Listing contents of /" >&2
14
+ ls -la / >&2
15
+ echo "[DEBUG] --- Initial Permissions for /data ---" >&2
16
+ ls -ld /data >&2
17
+ echo "[DEBUG] -------------------------------------" >&2
18
+
19
+
20
+ # ====================================================================
21
+ # 第二步:修复权限
22
+ # ====================================================================
23
  # 在 Hugging Face Spaces 等环境中,持久化存储 (/data) 默认归 root 所有。
24
  # 我们的 Node.js 应用以普通用户运行,因此没有写入权限。
25
  # 下面的命令利用 sudo 将 /data 目录的所有权递归地 (-R)
26
+ # 变更为当前运行脚本的用户,从而解决权限问题。
27
  #
28
+ echo "[INFO] Attempting to fix permissions for /data directory..." >&2
29
+ sudo chown -R "$(whoami)":"$(whoami)" /data && echo "[SUCCESS] Permissions for /data fixed successfully." >&2 || { echo "[FATAL] Failed to change ownership of /data." >&2; exit 1; }
30
+
31
+
32
+ # ====================================================================
33
+ # 第三步:验证权限
34
+ # ====================================================================
35
+ echo "[DEBUG] --- Final Permissions for /data ---" >&2
36
+ ls -ld /data >&2
37
+ echo "[DEBUG] --- End of Diagnostic ---" >&2
38
 
39
 
40
+ # ====================================================================
41
+ # 第四步:启动应用
42
+ # ====================================================================
43
  # 以后台进程 (&) 的方式启动主服务器和收集器
44
  {
45
  cd /app/server/ &&
46
+ echo "[INFO] Running Prisma generate..." &&
47
  npx prisma generate --schema=./prisma/schema.prisma &&
48
+ echo "[INFO] Running Prisma migrate..." &&
49
  npx prisma migrate deploy --schema=./prisma/schema.prisma &&
50
+ echo "[INFO] Starting main server..." &&
51
  node /app/server/index.js
52
  } &
53
  {
54
+ echo "[INFO] Starting collector service..." &&
55
  node /app/collector/index.js;
56
  } &
57