ubuntu16.04如何部署dify? 在Linux上安裝部署Dify的技巧

Dify 是一個(gè)基于 Docker 的工作流管理工具,旨在簡化機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)領(lǐng)域的多步驟工作流。它通過容器化每個(gè)步驟,確保工作流的可復(fù)現(xiàn)性和環(huán)境一致性。Dify 支持自動(dòng)化執(zhí)行、日志記錄和結(jié)果管理,適用于數(shù)據(jù)處理、模型訓(xùn)練和部署等場景。
Dify 主要支持以下三種模式:
- Agent 模式:Dify 作為一個(gè)代理,通過配置和管理多種工作流,進(jìn)行任務(wù)調(diào)度和執(zhí)行。
- 知識(shí)庫模式:用于存儲(chǔ)和管理工作流相關(guān)的知識(shí)、數(shù)據(jù)庫和模型,方便復(fù)用和共享。
- 工作流模式:Dify 通過定義工作流的各個(gè)步驟,自動(dòng)化執(zhí)行數(shù)據(jù)處理、模型訓(xùn)練、測(cè)試等任務(wù),確保工作流的一致性和高效性。
安裝 Dify 之前, 請(qǐng)確保機(jī)器已滿足最低安裝要求:
- CPU >= 2 Core
- RAM >= 4 GiB
1、克隆 Dify 源代碼至本地環(huán)境
git clone https://github.com/langgenius/dify.git
也可以手動(dòng)下載到本地https://github.com/langgenius/dify/archive/refs/heads/main.zip
,解壓后移動(dòng)到服務(wù)器上。
2、加速Dify鏡像文件下載
詳情見:https://github.com/imashen/docker-aio/tree/main
- 安裝腳本使用:
curl -fsSL https://docker.13140521.xyz/install | bash -s docker --mirror Aliyun
- Docker加速源使用:
- 編輯Docker配置文件: 打開Docker的配置文件(通常位于/etc/docker/daemon.json):
sudo vim /etc/docker/daemon.json
- 添加或修改鏡像源: 添加或修改配置文件中的registry-mirrors字段:
{ "registry-mirrors": [ "https://docker.13140521.xyz" ] }
重啟Docker服務(wù): 保存配置文件并重啟Docker服務(wù):
sudo systemctl daemon-reload sudo systemctl restart docker
3、啟動(dòng) Dify
進(jìn)入 Dify 源代碼的 Docker 目錄cd dify/docker
復(fù)制環(huán)境配置文件cp .env.example .env
啟動(dòng) Docker 容器
根據(jù)你系統(tǒng)上的 Docker Compose 版本,選擇合適的命令來啟動(dòng)容器。你可以通過docker compose version
命令檢查版本,詳細(xì)說明請(qǐng)參考 Docker 官方文檔:
如果版本是 Docker Compose V2,使用以下命令:
docker compose up -d
如果版本是 Docker Compose V1,使用以下命令:
docker-compose up -d
運(yùn)行命令后,你應(yīng)該會(huì)看到類似以下的輸出,顯示所有容器的狀態(tài)和端口映射:
[+] Running 11/11 ? Network docker_ssrf_proxy_network Created 0.1s ? Network docker_default Created 0.0s ? Container docker_redis_1 Started 2.4s ? Container docker_ssrf_proxy_1 Started 2.8s ? Container docker_sandbox_1 Started 2.7s ? Container docker_web_1 Started 2.7s ? Container docker_weaviate_1 Started 2.4s ? Container docker_db_1 Started 2.7s ? Container docker_api_1 Started 6.5s ? Container docker_worker_1 Started 6.4s ? Container docker_nginx_1 Started 7.1s
最后檢查是否所有容器都正常運(yùn)行:
docker compose ps
[+] Running 11/11 ? Network docker_ssrf_proxy_network Created 0.1s ? Network docker_default Created 0.0s ? Container docker_redis_1 Started 2.4s ? Container docker_ssrf_proxy_1 Started 2.8s ? Container docker_sandbox_1 Started 2.7s ? Container docker_web_1 Started 2.7s ? Container docker_weaviate_1 Started 2.4s ? Container docker_db_1 Started 2.7s ? Container docker_api_1 Started 6.5s ? Container docker_worker_1 Started 6.4s ? Container docker_nginx_1 Started 7.1s
4、訪問 Dify
你可以先前往管理員初始化頁面設(shè)置管理員賬戶:
本地環(huán)境
http://localhost/install
服務(wù)器環(huán)境
http://your_server_ip/install
Dify 主頁面:
本地環(huán)境
http://localhost
服務(wù)器環(huán)境
http://your_server_ip
5、更新 Dify
進(jìn)入 dify 源代碼的 docker 目錄,按順序執(zhí)行以下命令:
# 注意:以下方法只針對(duì)git clone方式下載的小伙伴 cd dify/docker docker compose down git pull origin main docker compose pull docker compose up -d
同步環(huán)境變量配置 (重要!)
如果 .env.example 文件有更新,請(qǐng)務(wù)必同步修改你本地的 .env 文件。
檢查 .env 文件中的所有配置項(xiàng),確保它們與你的實(shí)際運(yùn)行環(huán)境相匹配。你可能需要將 .env.example 中的新變量添加到 .env 文件中,并更新已更改的任何值。
如果是通過下載dify壓縮文件到本地的小伙伴,請(qǐng)重新下載最新的dify壓縮文件并移動(dòng)到服務(wù)器覆蓋當(dāng)前dify目錄。接著進(jìn)入 api 目錄下,執(zhí)行以下命令將數(shù)據(jù)庫結(jié)構(gòu)遷移至最新版本flask db upgrade
。接著,運(yùn)行docker-compose up -d
即可。
6、常見問題及解決方案
(1)容器restarting
通過docker compose ps
,如果出現(xiàn)個(gè)別容器一直restarting,使用docker logs -f
查看容器日志,如果日志中出現(xiàn)如下錯(cuò)誤:
- OpenBLAS blas_thread_init: pthread_create failed for thread 47 of 48: Operation not permittedOpenBLAS blas_thread_init: RLIMIT_NPROC -1 current, -1 max
修改docker-compose.yaml文件,在每個(gè)鏡像下增加privileged: true # 啟用特權(quán)模式
,如:
api: image: langgenius/dify-api:0.13.1 restart: always environment: # Use the shared environment variables. <<: *shared-api-worker-env # Startup mode, 'api' starts the API server. MODE: api depends_on: - db - redis volumes: # Mount the storage directory to the container, for storing user files. - ./volumes/app/storage:/app/api/storage networks: - ssrf_proxy_network - default privileged: true
通過docker-compose down
停止所有正在運(yùn)行的容器,然后docker-compose up -d
重新啟動(dòng)所有dify鏡像即可解決。
(2)日志文件上限
當(dāng)前docker日志文件沒有設(shè)置上限,會(huì)導(dǎo)致日志文件占用內(nèi)存持續(xù)增長,可通過以下方式設(shè)置單個(gè)日志文件的上限:
api: image: langgenius/dify-api:0.13.1 restart: always environment: # Use the shared environment variables. <<: *shared-api-worker-env # Startup mode, 'api' starts the API server. MODE: api depends_on: - db - redis volumes: # Mount the storage directory to the container, for storing user files. - ./volumes/app/storage:/app/api/storage networks: - ssrf_proxy_network - default privileged: true logging: driver: "json-file" options: max-size: "10m" # 每個(gè)日志文件最大 10MB max-file: "3"
(3)重置管理員密碼
如果你通過 Docker Compose 部署,你可以運(yùn)行以下 Docker Compose 命令行重置密碼。
docker exec -it docker_api_1 flask reset-password
請(qǐng)按照提示輸入郵箱地址和新密碼,例如:
dify@my-pc:~/hello/dify/docker$ docker compose up -d [+] Running 9/9 ? Container docker_web_1 Started 0.1s ? Container docker_sandbox_1 Started 0.1s ? Container docker_db_1 Started 0.1s ? Container docker_redis_1 Started 0.1s ? Container docker_weaviate_1 Started 0.1s ? Container docker_ssrf_proxy_1 Started 0.1s ? Container docker_api_1 Started 0.1s ? Container docker_worker_1 Started 0.1s ? Container docker_nginx_1 Started 0.1s dify@my-pc:~/hello/dify/docker$ docker exec -it docker-api-1 flask reset-password None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used. sagemaker.config INFO - Not applying SDK defaults from location: /etc/xdg/sagemaker/config.yaml sagemaker.config INFO - Not applying SDK defaults from location: /root/.config/sagemaker/config.yaml Email: hello@dify.ai New password: newpassword4567 Password confirm: newpassword4567 Password reset successfully.
(4)修改頁面端口
如果你使用 Docker Compose 部署,你可以通過修改.env配置來自定義 Dify 的訪問端口。
你需要修改 Nginx 相關(guān)配置:
EXPOSE_NGINX_PORT=80 EXPOSE_NGINX_SSL_PORT=443
常見問題及解決方案
1. Docker引擎無法啟動(dòng)
- 問題描述:在執(zhí)行Docker命令時(shí),提示Docker引擎無法啟動(dòng)。
- 解決方案:首先檢查Docker引擎是否已經(jīng)正確安裝并配置。如果安裝過程中出現(xiàn)問題,可以重新安裝Docker引擎。此外,還需要檢查服務(wù)器上的系統(tǒng)資源是否足夠,如內(nèi)存、CPU等。
2. Dify容器無法正常運(yùn)行
- 問題描述:在運(yùn)行Dify容器時(shí),容器無法正常啟動(dòng)或運(yùn)行。
- 解決方案:首先查看Docker容器的日志信息,了解容器啟動(dòng)失敗的原因??赡苁荄ify鏡像存在問題,可以嘗試重新拉取鏡像。此外,還需要檢查容器的配置是否正確,如端口映射、環(huán)境變量等。
相關(guān)文章
ubuntu系統(tǒng)使用官方操作命令升級(jí)Dify指南
Dify支持自動(dòng)化執(zhí)行、日志記錄和結(jié)果管理,適用于數(shù)據(jù)處理、模型訓(xùn)練和部署等場景,今天我們就來看看ubuntu系統(tǒng)中使用官方操作命令升級(jí)Dify的方法2025-05-13ubuntu如何部署Dify以及安裝Docker? Dify安裝部署指南
Dify 是一個(gè)開源的大模型應(yīng)用開發(fā)平臺(tái),允許用戶快速構(gòu)建和部署基于大語言模型的應(yīng)用,ubuntu如何部署Dify呢?詳細(xì)請(qǐng)看下文介紹2025-05-13ubuntu系統(tǒng)怎么修改ollama模型下載位置?
ollama下載和安裝都比較簡單,容易上手操作,但在ubuntu系統(tǒng)中下載ollama并且修改ollama中模型的保存路徑設(shè)置起來比較麻煩,詳細(xì)請(qǐng)看下文介紹2025-05-13Rust 組件全面上位! Ubuntu 25.10 將全面采用基于Rust 的 sudo-rs
anonical宣布自 Ubuntu 25.10 發(fā)行版開始,取代原有的 sudo,默認(rèn)使用基于 Rust 的內(nèi)存安全工具 sudo-rs,并計(jì)劃在 Ubuntu 26.04 LTS版本中進(jìn)一步部署推廣2025-05-13新特性搶先看! Ubuntu 25.04 Beta 發(fā)布:Linux 6.14 內(nèi)核
Canonical公司近日發(fā)布了Ubuntu 25.04 Beta版,這一版本被賦予了一個(gè)活潑的代號(hào)——“Plucky Puffin”(勇敢的海雀),據(jù)悉,正式的穩(wěn)定版預(yù)計(jì)將在2025年4月17日與廣大用戶2025-03-29如何讓 Ubuntu 居中顯示窗口? 3種方法實(shí)現(xiàn)Ubuntu窗口居中顯示
個(gè)人習(xí)慣不管打開終端窗口還是文件管理器窗口,都希望居中顯示,不太喜歡Linux下自動(dòng)隨意的擺放位置,下面我們就來看看詳細(xì)設(shè)置方法2025-03-11Ubuntu 24.04.2 LTS 正式發(fā)布: 帶來全新硬件支持啟用堆棧HWE
buntu 24.04 LTS 的第 2 個(gè)小版本Ubuntu 24.04.2 LTS 正式發(fā)布,出了修復(fù)漏洞以外,它還帶來了全新的硬件支持啟用堆棧(HWE),讓系統(tǒng)性能和硬件兼容性更上一層樓2025-02-25怎么關(guān)閉Ubuntu無人值守升級(jí)? Ubuntu禁止自動(dòng)更新的技巧
Ubuntu Linux系統(tǒng)禁止自動(dòng)更新的時(shí)候,提示“無人值守升級(jí)在關(guān)機(jī)期間,請(qǐng)不要關(guān)閉計(jì)算機(jī)進(jìn)程”,該怎么解決這個(gè)問題?詳細(xì)請(qǐng)看下文介紹2025-01-20如何配置Ubuntu無人值守升級(jí)? 手動(dòng)操作實(shí)現(xiàn)Ubuntu自動(dòng)升級(jí)技巧
無人值守升級(jí)是一個(gè)用于自動(dòng)更新 Debian 和 Ubuntu 系統(tǒng)的開源項(xiàng)目,該項(xiàng)目的主要目的是確保系統(tǒng)能夠定期自動(dòng)安裝安全更新,從而保持系統(tǒng)的安全性和穩(wěn)定性2025-01-20Ubuntu系統(tǒng)怎么安裝Warp? 新一代AI 終端神器安裝使用方法
Warp是一款使用Rust開發(fā)的現(xiàn)代化AI 終端工具,該怎么再Ubuntu系統(tǒng)中安裝使用呢?下面我們就來看看詳細(xì)教程2025-01-20