docker啟動anything llm報unable to open database file: ../storage/anythingllm.db問題及解決
docker啟動anything llm報unable to open database file: ../storage/anythingllm.db
docker的安裝和anything llm鏡像的下載就不在過多介紹,下載docker和鏡像的時候,記得切換到國內(nèi)源,否則很可能下載速度緩慢或者下載失敗。
運行命令參考的是官網(wǎng)的命令
export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm
但是總會報錯
Environment variables loaded from .env Prisma schema loaded from prisma/schema.prisma Datasource "db": SQLite database "anythingllm.db" at "file:../storage/anythingllm.db" Error: Schema engine error: SQLite database error unable to open database file: ../storage/anythingllm.db
最初以為是映射問題
總在映射上找原因,搜索了很多,但是沒有能夠解決問題的辦法。
瀏覽了下官網(wǎng)的安裝文檔
發(fā)現(xiàn)了一個比較奇怪的說明,具體鏈接
The UID and GID are set to 1000 by default. This is the default user in the Docker container and on most host operating systems.
If there is a mismatch between your host user UID and GID and what is set in the .env file, you may experience permission issues.
1000是linux普通用戶的標(biāo)識,而docker run的時候使用的是root,所以沒有往權(quán)限方面想,難道是映射的文件夾權(quán)限不足?
于是:
chmod 777 anythingllm
再次運行,果然成功了。
總結(jié)
因為docker運行時創(chuàng)建文件的用戶是uid為1000的普通用戶,如果使用root進行目錄創(chuàng)建,普通用戶是無法寫入文件的,所以導(dǎo)致運行的時候報錯,修改目錄權(quán)限即可。
當(dāng)然如果覺得777權(quán)限過大,可以通過chown改變目錄所有者為uid為1000的用戶。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
keepalived+nginx+httpd實現(xiàn)的雙機熱備+負載均衡
本文主要介紹了keepalived + nginx + httpd 實現(xiàn)的雙機熱備+負載均衡,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
Docker容器部署Elasticsearch并配置分詞器的方法實現(xiàn)
本文主要介紹了Docker容器部署Elasticsearch并配置分詞器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04
docker+gitlab+gitlab-runner部署詳解
這篇文章主要介紹了docker+gitlab+gitlab-runner部署詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Docker容器化應(yīng)用與結(jié)構(gòu)
本文詳細講解了Docker的容器化應(yīng)用與結(jié)構(gòu),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Docker部署Redis緩存服務(wù)的實現(xiàn)步驟
本文介紹了使用Docker部署Redis緩存服務(wù)的步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
docker 打包本地鏡像,并到其他機器進行恢復(fù)操作
這篇文章主要介紹了docker 打包本地鏡像,并到其他機器進行恢復(fù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

