Update docker/docker-entrypoint.sh
Browse files- docker/docker-entrypoint.sh +13 -24
docker/docker-entrypoint.sh
CHANGED
|
@@ -1,40 +1,30 @@
|
|
| 1 |
#!/bin/bash
|
|
|
|
| 2 |
|
| 3 |
-
# 检查 STORAGE_DIR 环境变量是否设置
|
| 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
|
| 9 |
-
echo "
|
| 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 |
#
|
| 21 |
-
# 在 Hugging Face Spaces 中,持久化存储 /data
|
| 22 |
-
#
|
| 23 |
-
#
|
|
|
|
| 24 |
#
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
# 变更为当前正在运行此脚本的用户 ($(whoami))。
|
| 28 |
-
#
|
| 29 |
-
# 这样一来,当后面的 node 进程启动时,它就拥有了对 /data 目录的完全读写权限。
|
| 30 |
-
#
|
| 31 |
-
echo "[STARTUP SCRIPT] Fixing permissions for persistent storage directory..."
|
| 32 |
-
sudo chown -R "$(whoami)":"$(whoami)" /data && echo "[STARTUP SCRIPT] Permissions for /data fixed successfully." || echo "[STARTUP SCRIPT] Warning: Could not fix permissions for /data. This might be okay if not running in a restricted environment."
|
| 33 |
#
|
| 34 |
# ======================== 修复代码结束 ========================
|
| 35 |
|
| 36 |
|
| 37 |
-
#
|
| 38 |
{
|
| 39 |
cd /app/server/ &&
|
| 40 |
echo "[STARTUP SCRIPT] Running Prisma generate..." &&
|
|
@@ -53,5 +43,4 @@ sudo chown -R "$(whoami)":"$(whoami)" /data && echo "[STARTUP SCRIPT] Permission
|
|
| 53 |
wait -n
|
| 54 |
|
| 55 |
# 以那个退出的进程的退出码退出脚本
|
| 56 |
-
exit $?
|
| 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..." &&
|
|
|
|
| 43 |
wait -n
|
| 44 |
|
| 45 |
# 以那个退出的进程的退出码退出脚本
|
| 46 |
+
exit $?
|
|
|