【docker】AnythingLLM的docker-compose及一些启动踩坑
·
摘要:使用docker-compose配置和启动AnythingLLM服务。配置包括指定镜像、设置容器名称、端口映射、数据卷挂载等。
通过docker-compose启动AnythingLLM可以进行以下配置:
services:
anythingllm:
image: docker.io/mintplexlabs/anythingllm:latest
container_name: anythingllm
ports:
- "3001:3001"
volumes:
- ./data:/data
- ./logs:/app/logs
- ./storage:/app/server/storage
environment:
- TZ=Asia/Shanghai
- VECTOR_STORE_DIR=/app/data/vectorstore
- STORAGE_DIR=/app/data/storage
- MODEL_DIR=/app/models
restart: unless-stopped
image 镜像:修改为自己的镜像名称:版本
container_name 容器名:不与其他容器重复即可
ports 端口:3001:3001
volumes 数据卷挂载:实际地址./data:容器内地址/data
restart 重启策略: unless-stopped除非手动停止,否则容器将在退出后自动重启
docker-compose up -d
运行启动
一些踩坑:
启动anythingllm时候报错:
1.WARNING: STORAGE_DIR environment variable is not set!
一些版本所需环境变量不一致,docker logs xxx 查看启动日志,如果有相关报错,在docker-compose里environment下面添加即可。
⚠️ ⚠️ ⚠️ WARNING: STORAGE_DIR environment variable is not set! ⚠️ ⚠️ ⚠️
================================================================
node:internal/validators:162
throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "paths[0]" argument must be of type string. Received undefined
at new NodeError (node:internal/errors:405:5)
at validateString (node:internal/validators:162:11)
at Object.resolve (node:path:1115:7)
at Object.<anonymous> (/app/collector/utils/files/index.js:12:12)
at Module._compile (node:internal/modules/cjs/loader:1364:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
at Module.load (node:internal/modules/cjs/loader:1203:32)
at Module._load (node:internal/modules/cjs/loader:1019:12)
at Module.require (node:internal/modules/cjs/loader:1231:19)
at require (node:internal/modules/helpers:177:18) {
code: 'ERR_INVALID_ARG_TYPE'
}
Node.js v18.20.8
解决:我这里提示缺少 STORAGE_DIR,添加环境变量后重启(注意这个不是本地的环境变量,而是配置给容器内部的)。
2.Error: EACCES: permission denied, mkdir 'xxx'
启动报错权限不够,默认情况下,Docker 容器以 root 以外的非特权用户运行,无法写入某些本地目录:
node:internal/fs/utils:356 throw err; ^
Error: EACCES: permission denied, mkdir '/app/data/vectorstore/models/context-windows' at Object.mkdirSync (node:fs:1391:3) at new ContextWindowFinder
(/app/server/utils/AiProviders/modelMap/index.js:39:10) at Object.<anonymous>
(/app/server/utils/AiProviders/modelMap/index.js:206:31) at Module._compile
(node:internal/modules/cjs/loader:1364:14) at Module._extensions..js
(node:internal/modules/cjs/loader:1422:10) at Module.load
(node:internal/modules/cjs/loader:1203:32) at Module._load
(node:internal/modules/cjs/loader:1019:12) at Module.require
(node:internal/modules/cjs/loader:1231:19) at require
(node:internal/modules/helpers:177:18) at Object.<anonymous>
(/app/server/utils/AiProviders/gemini/index.js:11:23) { errno: -13, syscall: 'mkdir', code: 'EACCES', path: '/app/data/vectorstore/models/context-windows' }
解决:赋予挂载的实际地址777权限,或者手动创建报错目录,我在配置文件中设置的是./data路径,所以进行如下操作
mkdir -p ./data/vectorstore/models/context-windows
chmod -R 777 ./data
更多推荐
所有评论(0)