by Rain Chu | 11 月 1, 2024 | Docker, MIS
如果遇到別人包裝好的 docker (99%都是),常會遇到沒有 root 密碼的情形,這時候有幾個解決方法,列舉如下
直接使用 root 的權限進入系統
docker exec -u 0 -it mycontainer bash
或是下面的指令也可以
docker exec -u root -it --workdir / <containerName> bash
修改 root 密碼
安裝 sudo
apt-get install sudo
usermod -aG sudo dev
參考資料
https://stackoverflow.com/questions/28721699/root-password-inside-a-docker-container
by rainchu | 7 月 22, 2024 | AI, Chat
AnythingLLm 官方最推薦的安裝方法是採用 docker,可以最快速的體驗 anything llm web ui 以及驗證想法,雖然說用docker安裝已經超簡單了,但還是有些小細節值得記錄一下,並且告訴大家避免採坑。
最低要求
最低需要 Docker v18.03+ 版本在 Win/Mac 上和 20.10+ 版本在 Linux/Ubuntu 上才能解析 host.docker.internal
Linux:在 docker run 命令中添加 –add-host=host.docker.internal參數以使其能夠解析。例如:在主機上 localhost:8000 上運行的 Chroma 主機 URL 在 AnythingLLM 中使用時需改為 http://host.docker.internal:8000。
安裝指令
docker pull mintplexlabs/anythingllm
Windows 的設定指令,定義好你要存放 llm 的位址
$env:STORAGE_LOCATION="$HOMEDocumentsanythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION.env")) {New-Item "$env:STORAGE_LOCATION.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
mintplexlabs/anythingllm;
多個 Anything llm containers
如果你需要安裝多個anything llm,那記得要改兩個位置
- $env:STORAGE_LOCATION=”$HOMEDocumentsanythingllm-yourid”; `
- docker run -d -p 8001(改成你自己的port):3001 `
修改玩會像是下面的樣子
$env:STORAGE_LOCATION="$HOMEDocumentsanythingllm-yourid"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION.env")) {New-Item "$env:STORAGE_LOCATION.env" -ItemType File}; `
docker run -d -p 8001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
--name yourid `
mintplexlabs/anythingllm;
之後可以執行 Docker run
docker run -d -p 8001:3001 --cap-add SYS_ADMIN --user root -v "$env:STORAGE_LOCATION:/app/server/storage" -v "$env:STORAGE_LOCATION.env:/app/server/.env" -e STORAGE_DIR="/app/server/storage" mintplexlabs/anythingllm
利用 Docker Compose 安裝
先寫一段 docker-compose.yml ,再用 docker-compose up -d 執行即可
version: '3.8'
services:
anythingllm:
image: mintplexlabs/anythingllm
container_name: anythingllm
ports:
- "3001:3001"
volumes:
- ./storage:/app/server/storage
- ./env.txt:/app/server/.env
environment:
- STORAGE_DIR=/app/server/storage
cap_add:
- SYS_ADMIN
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
利用介面安裝
在 docker desktop 的搜尋框內輸入 anythingllm ,找到 mintpolexlabs/anythingllm,並且按下 Run
下載完畢後記得要做第一次的初始化設定喔
TIPS
記得你現在運行的服務是在 docker 中,如果您在 localhost 上運行其他服務,如 Chroma、LocalAi 或 LMStudio,您將需要使用 http://host.docker.internal:xxxx 從 Docker 容器內訪問該服務,因為 localhost對主機系統來說無法解析。
參考資料
https://docs.useanything.com/installation/self-hosted/local-docker
錯誤解決
如果遇到Error : ‘Invalid file upload. EACCES: permission denied, open ‘/app/collector/hotdir/xxxx.txt’,可以用以下的方法解決
docker run -d -p 8001:3001 --cap-add SYS_ADMIN --user root -v "$env:STORAGE_LOCATION:/app/server/storage" -v "$env:STORAGE_LOCATION.env:/app/server/.env" -e STORAGE_DIR="/app/server/storage" mintplexlabs/anythingllm
近期留言