Error: EACCES: permission denied, mkdir ‘/home/powersys/work/anything-llm-storage/models/context-win
node:internal/fs/utils:356
anythingllm | throw err;
anythingllm | ^
anythingllm |
anythingllm | Error: EACCES: permission denied, mkdir '/home/powersys/work/anything-llm-storage/models/context-windows'
anythingllm | at Object.mkdirSync (node:fs:1391:3)
anythingllm | at new ContextWindowFinder (/app/server/utils/AiProviders/modelMap/index.js:39:10)
anythingllm | at Object.<anonymous> (/app/server/utils/AiProviders/modelMap/index.js:206:31)
anythingllm | at Module._compile (node:internal/modules/cjs/loader:1364:14)
anythingllm | at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
anythingllm | at Module.load (node:internal/modules/cjs/loader:1203:32)
anythingllm | at Module._load (node:internal/modules/cjs/loader:1019:12)
anythingllm | at Module.require (node:internal/modules/cjs/loader:1231:19)
anythingllm | at require (node:internal/modules/helpers:177:18)
anythingllm | at Object.<anonymous> (/app/server/utils/AiProviders/gemini/index.js:11:23) {
anythingllm | errno: -13,
anythingllm | syscall: 'mkdir',
anythingllm | code: 'EACCES',
anythingllm | path: '/home/powersys/work/anything-llm-storage/models/context-windows'
anythingllm | }
这个错误是因为容器内程序试图在宿主机路径 /home/powersys/work/anything-llm-storage/models/context-windows 创建目录,但没有权限(EACCES: permission denied)。
解决思路
-
确认宿主机路径权限
ls -ld /home/powersys/work/anything-llm-storage
ls -ld /home/powersys/work/anything-llm-storage/models
确保你当前运行容器的用户有权限在这个路径创建目录。
-
修改目录权限(如果安全允许)
给目录设置权限,允许容器用户创建:
sudo chown -R 1000:1000 /home/powersys/work/anything-llm-storage
这里 1000:1000 对应 Docker 里运行的用户(你的 docker-compose.yml 里 user: "${UID:-1000}:${GID:-1000}"),确保 UID 和 GID 对应正确。
或者使用更宽松的权限(不建议长期使用):
sudo chmod -R 777 /home/powersys/work/anything-llm-storage
-
确认 docker-compose 中挂载的卷与运行用户
你的 docker-compose.yml 里:
volumes:
- "/home/powersys/work/anything-llm-storage:/app/server/storage"
user: "${UID:-1000}:${GID:-1000}"
-
容器内程序写入的是
/app/server/storage/models/context-windows,映射到宿主机是/home/powersys/work/anything-llm-storage/models/context-windows。 -
你需要确保宿主机
/home/powersys/work/anything-llm-storage下的文件夹和权限对 UID 1000 的用户开放。
-
重新启动容器
修改权限后,停止并删除容器,重新启动:
docker-compose down
docker-compose up -d
总结
-
这个错误是宿主机挂载目录权限不足导致的。
-
通过调整宿主机目录权限或属主,使容器运行的用户能写入即可解决。
如果你需要,我可以帮你写完整的命令步骤。需要告诉我你宿主机当前用户的 UID 和 GID 么?(id 命令可以查看)
更多推荐
所有评论(0)