dify windows wsl子系統(tǒng)部署步驟(docker)

以下根據(jù)回憶整理,供日后翻閱

一、安裝wsl子系統(tǒng) #替代vmware虛擬機(jī),gpu性能會(huì)更高

1.打開windows功能

在win10里,控制面板--》程序-->啟用或關(guān)閉windows功能--》勾選 hyper-V、適用于windows的linux子系統(tǒng)、虛擬機(jī)平臺(tái)(大概叫這些名,本人win11沒有勾選后兩個(gè))

2.微軟商店里安裝自己喜歡的linux(非必須,執(zhí)行運(yùn)行wsl可進(jìn)入linux命令行),如下圖:

5.png

執(zhí)行wsl --install (默認(rèn)安裝ubuntu,網(wǎng)速慢建議直接微軟商店安裝),本人微軟商店安裝winch wsl(即archlinux),以下均以archlinux方式安裝,可裝linux如下圖


6.png

3.修改root密碼

# windows命令提示符
wsl --user root
# wsl linux內(nèi)(后續(xù)簡(jiǎn)稱wsl)
passwd #修改密碼

4.wsl內(nèi)安裝docker (root用戶)

# 1.修改國(guó)內(nèi)源為清華源
cat <<! > /etc/pacman.d/mirrorlist
Server = https://mirrors.tuna.Tsinghua.edu.cn/archlinux/$repo/os/$arch 
!

# 2.更新全部組件
pacman -Syu

# 3.安裝必要組件
pacman -S git docker docker-compose lvm2 # 不用lvm分區(qū)的話,lvm2非必須

# 4.掛載ext4硬盤(需要一塊獨(dú)立硬盤或者創(chuàng)建虛擬磁盤才行,如直接使用NTFS,性能下降90%)
# 虛擬磁盤手工創(chuàng)建方法:
# 右鍵點(diǎn)開始菜單--》磁盤管理--》選中分區(qū)--》操作--》創(chuàng)建VHD,重啟電腦(或者其他可以讓磁盤解除占用的方法)
# 執(zhí)行下面掛載磁盤的命令
# 下面這條命令在windows命令提示符下運(yùn)行可創(chuàng)建150G動(dòng)態(tài)拓展的虛擬磁盤(本人使用獨(dú)立硬盤)
# New-VHD -Dynamic -SizeBytes 150GB -BlockSizeBytes 1MB -Path "E:\wsl_disk.vhdx"
# 右鍵VHDX文件→「屬性」→「安全」→「編輯」。添加Authenticated Users組,勾選「完全控制」權(quán)限。
# 掛載磁盤:wsl --mount --vhd "E:\wsl_disk.vhdx" --bare  # 如果成功,下面命令都忽略;如果不識(shí)別命令,則檢查wsl是否不是wsl2 ,wsl -l -v 可查看wsl版本
# wsl --update #升級(jí)到wsl2  ,執(zhí)行wsl --set-version <發(fā)行版> 2 為當(dāng)前安裝的linux子系統(tǒng)切換到wsl2
# windows命令提示符操作(管理員權(quán)限)
   wmic diskdrive list brief  # 從結(jié)果找出磁盤號(hào)
   wmic partition list brief  # 從結(jié)果找出分區(qū)號(hào)
   wsl --mount \\.\PHYSICALDRIVE0 --partition 0 --bare #掛載
# wsl linux子系統(tǒng)操作
lsblk #查看磁盤 找到設(shè)備 如/dev/sdb
cfdisk 分區(qū) # gpt格式,分為1個(gè)區(qū) /dev/sdb1
# lvm分區(qū) (不用lvm可忽略)
pvcreate /dev/sdb1 #創(chuàng)建pv
vgcreate vg /dev/sdb1 # 創(chuàng)建vg
lvcreate -L +100%FREE vg -n data # 這里只分一個(gè)區(qū)名為/dev/mapper/vg-data
# 格式化ext4
mkfs.ext4 /dev/mapper/vg-data # 沒有l(wèi)vm的用/dev/sdb1

# 掛載到/data
mkdir /data
mount /dev/mapper/vg-data /data

# 5.為docker配置文件指定data-root 和國(guó)內(nèi)源
mkdir /lib/systemd/system/docker.service.d
cat <<! > /lib/systemd/system/docker.service.d/override.conf #直接修改/lib/systemd/system/docker.service文件也可以,這里override.conf是為了防止archlinux滾動(dòng)更新時(shí)覆蓋掉原文件
[Service]                                                                                                               
ExecStart=                                                                                                              
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data/dockerdata --registry-mirror=https://docker.m.daocloud.io 
!

# 6.啟動(dòng)docker
systemctl start docker

5.安裝dify (正題才是這里,前面其實(shí)都可忽略,獲取源碼后其實(shí)就兩步,超級(jí)簡(jiǎn)單,5-10分鐘吧,看網(wǎng)速)

# 1.拉取dify源碼
mkdir /data/git
cd /data/git
# 注意一下,這里gitclone.com做了國(guó)內(nèi)加速
git clone https://gitclone.com/github.com/langgenius/dify.git

# 2.設(shè)置環(huán)境變量
cd /data/git/dify/docker
cp .env.example .env # 隱藏文件,生成環(huán)境變量,修改端口在.env里改,修改EXPOSE_NGINX_PORT=8001

# 3.部署dify
docker compose up -d # 等待拉取鏡像和啟動(dòng)即可
# 啟動(dòng)完后是這樣的:
[+] Running 12/12                                                                                                       
 ? Network docker_default             Created                                                                      0.0s 
 ? Network docker_ssrf_proxy_network  Created                                                                      0.0s 
 ? Container docker-sandbox-1         Started                                                                      1.5s 
 ? Container docker-weaviate-1        Started                                                                      1.7s 
 ? Container docker-db-1              Healthy                                                                      5.0s 
 ? Container docker-web-1             Started                                                                      1.5s 
 ? Container docker-ssrf_proxy-1      Started                                                                      1.8s 
 ? Container docker-redis-1           Started                                                                      1.4s 
 ? Container docker-worker-1          Started                                                                      1.3s 
 ? Container docker-api-1             Started                                                                      1.4s 
 ? Container docker-plugin_daemon-1   Started                                                                      4.5s 
 ? Container docker-nginx-1           Started                                                                      1.6s 
# 查看容器運(yùn)行
docker compose ps
NAME                     IMAGE                                       COMMAND                  SERVICE         CREATED          STATUS                    PORTS                                                                                  
docker-api-1             langgenius/dify-api:1.2.0                   "/bin/bash /entrypoi…"   api             41 minutes ago   Up 41 minutes             5001/tcp                                                                               
docker-db-1              postgres:15-alpine                          "docker-entrypoint.s…"   db              41 minutes ago   Up 41 minutes (healthy)   5432/tcp                                                                               
docker-nginx-1           nginx:latest                                "sh -c 'cp /docker-e…"   nginx           41 minutes ago   Up 41 minutes             0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:8001->80/tcp, [::]:8001->80/tcp       
docker-plugin_daemon-1   langgenius/dify-plugin-daemon:0.0.7-local   "/bin/bash -c /app/e…"   plugin_daemon   41 minutes ago   Up 41 minutes             0.0.0.0:5003->5003/tcp, [::]:5003->5003/tcp                                            
docker-redis-1           redis:6-alpine                              "docker-entrypoint.s…"   redis           41 minutes ago   Up 41 minutes (healthy)   6379/tcp                                                                               
docker-sandbox-1         langgenius/dify-sandbox:0.2.11              "/main"                  sandbox         41 minutes ago   Up 41 minutes (healthy)                                                                                          
docker-ssrf_proxy-1      ubuntu/squid:latest                         "sh -c 'cp /docker-e…"   ssrf_proxy      41 minutes ago   Up 41 minutes             3128/tcp                                                                               
docker-weaviate-1        semitechnologies/weaviate:1.19.0            "/bin/weaviate --hos…"   weaviate        41 minutes ago   Up 41 minutes                                                                                                    
docker-web-1             langgenius/dify-web:1.2.0                   "/bin/sh ./entrypoin…"   web             41 minutes ago   Up 41 minutes             3000/tcp                                                                               
docker-worker-1          langgenius/dify-api:1.2.0                   "/bin/bash /entrypoi…"   worker          41 minutes ago   Up 41 minutes             5001/tcp                                                                        

6.進(jìn)入dify后臺(tái)

ip a #查看ip ,這里找到網(wǎng)卡eth0 ,ip為172.29.200.100

windows訪問(wèn)瀏覽器地址http://172.29.200.100:8001即可
注冊(cè)后界面舉例如下:


1.jpg
2.jpg
3.jpg
4.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容