leowuming commited on
Commit
781fb36
·
verified ·
1 Parent(s): 870808c

Update docker/docker-entrypoint.sh

Browse files
Files changed (1) hide show
  1. docker/docker-entrypoint.sh +17 -50
docker/docker-entrypoint.sh CHANGED
@@ -1,60 +1,27 @@
1
  #!/bin/bash
2
 
3
- # 设置脚本在遇到任何错误时立即退出
4
- set -e
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- # ====================================================================
7
- # 第一步:等待持久化存储准备就绪
8
- # ====================================================================
9
- # 在 Hugging Face Spaces 这样的环境中,容器的启动速度可能快于
10
- # 持久化存储卷挂载到 /data 目录的速度。
11
- # 下面的循环会一直等待,直到 /data 目录被成功创建(即挂载完成)。
12
- #
13
- echo "[信息] 正在等待持久化存储挂载到 /data..." >&2
14
- while [ ! -d "/data" ]; do
15
- echo "[信息] /data 目录未找到,等待 2 秒后重试..." >&2
16
- sleep 2
17
- done
18
- echo "[成功] /data 处的持久化存储已准备就绪。" >&2
19
-
20
-
21
- # ====================================================================
22
- # 第二步:诊断并修复权限
23
- # ====================================================================
24
- echo "[调试] --- 开始诊断 ---" >&2
25
- echo "[调试] 当前运行用户: $(whoami)" >&2
26
- echo "[调试] --- /data 目录的初始权限 ---" >&2
27
- ls -ld /data >&2 # 现在这个命令应该会成功执行
28
-
29
- echo "[信息] 正在尝试修复 /data 目录的权限..." >&2
30
- # 使用 sudo 将 /data 目录及其所有内容的拥有者递归地 (-R) 变更为当前用户
31
- sudo chown -R "$(whoami)":"$(whoami)" /data && echo "[成功] /data 目录权限修复成功。" >&2 || { echo "[致命错误] 修改 /data 目录所有权失败。" >&2; exit 1; }
32
-
33
- echo "[调试] --- /data 目录的最终权限 ---" >&2
34
- ls -ld /data >&2 # 验证权限是否已被正确修改
35
- echo "[调试] --- 诊断结束 ---" >&2
36
-
37
-
38
- # ====================================================================
39
- # 第三步:启动应用程序
40
- # ====================================================================
41
- # 现在,我们确保了 /data 目录存在且权限正确,可以安全地启动应用了。
42
  {
43
  cd /app/server/ &&
44
- echo "[信息] 正在运行 Prisma generate..." &&
45
  npx prisma generate --schema=./prisma/schema.prisma &&
46
- echo "[信息] 正在运行 Prisma migrate..." &&
47
  npx prisma migrate deploy --schema=./prisma/schema.prisma &&
48
- echo "[信息] 正在启动主服务器..." &&
49
  node /app/server/index.js
50
  } &
51
- {
52
- echo "[信息] 正在启动 collector 服务..." &&
53
- node /app/collector/index.js;
54
- } &
55
-
56
- # 等待任何一个后台进程退出
57
  wait -n
58
-
59
- # 使用那个退出进程的退出码来退出本脚本
60
- exit $?
 
1
  #!/bin/bash
2
 
3
+ # Check if STORAGE_DIR is set
4
+ if [ -z "$STORAGE_DIR" ]; then
5
+ echo "================================================================"
6
+ echo "⚠️ ⚠️ ⚠️ WARNING: STORAGE_DIR environment variable is not set! ⚠️ ⚠️ ⚠️"
7
+ echo ""
8
+ echo "Not setting this will result in data loss on container restart since"
9
+ echo "the application will not have a persistent storage location."
10
+ echo "It can also result in weird errors in various parts of the application."
11
+ echo ""
12
+ echo "Please run the container with the official docker command at"
13
+ echo "https://docs.anythingllm.com/installation-docker/quickstart"
14
+ echo ""
15
+ echo "⚠️ ⚠️ ⚠️ WARNING: STORAGE_DIR environment variable is not set! ⚠️ ⚠️ ⚠️"
16
+ echo "================================================================"
17
+ fi
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  {
20
  cd /app/server/ &&
 
21
  npx prisma generate --schema=./prisma/schema.prisma &&
 
22
  npx prisma migrate deploy --schema=./prisma/schema.prisma &&
 
23
  node /app/server/index.js
24
  } &
25
+ { node /app/collector/index.js; } &
 
 
 
 
 
26
  wait -n
27
+ exit $?