以下根据回忆整理,供日后翻阅
一、安装wsl子系统 #替代vmware虚拟机,gpu性能会更高
1.打开windows功能
在win10里,控制面板--》程序-->启用或关闭windows功能--》勾选 hyper-V、适用于windows的linux子系统、虚拟机平台(大概叫这些名,本人win11没有勾选后两个)
2.微软商店里安装自己喜欢的linux(非必须,执行运行wsl可进入linux命令行),如下图:
5.png
执行wsl --install (默认安装ubuntu,网速慢建议直接微软商店安装),本人微软商店安装winch wsl(即archlinux),以下均以archlinux方式安装,可装linux如下图
6.png
3.修改root密码
# windows命令提示符
wsl --user root
# wsl linux内(后续简称wsl)
passwd #修改密码
4.wsl内安装docker (root用户)
# 1.修改国内源为清华源
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分区的话,lvm2非必须
# 4.挂载ext4硬盘(需要一块独立硬盘或者创建虚拟磁盘才行,如直接使用NTFS,性能下降90%)
# 虚拟磁盘手工创建方法:
# 右键点开始菜单--》磁盘管理--》选中分区--》操作--》创建VHD,重启电脑(或者其他可以让磁盘解除占用的方法)
# 执行下面挂载磁盘的命令
# 下面这条命令在windows命令提示符下运行可创建150G动态拓展的虚拟磁盘(本人使用独立硬盘)
# New-VHD -Dynamic -SizeBytes 150GB -BlockSizeBytes 1MB -Path "E:\wsl_disk.vhdx"
# 右键VHDX文件→「属性」→「安全」→「编辑」。添加Authenticated Users组,勾选「完全控制」权限。
# 挂载磁盘:wsl --mount --vhd "E:\wsl_disk.vhdx" --bare # 如果成功,下面命令都忽略;如果不识别命令,则检查wsl是否不是wsl2 ,wsl -l -v 可查看wsl版本
# wsl --update #升级到wsl2 ,执行wsl --set-version <发行版> 2 为当前安装的linux子系统切换到wsl2
# windows命令提示符操作(管理员权限)
wmic diskdrive list brief # 从结果找出磁盘号
wmic partition list brief # 从结果找出分区号
wsl --mount \\.\PHYSICALDRIVE0 --partition 0 --bare #挂载
# wsl linux子系统操作
lsblk #查看磁盘 找到设备 如/dev/sdb
cfdisk 分区 # gpt格式,分为1个区 /dev/sdb1
# lvm分区 (不用lvm可忽略)
pvcreate /dev/sdb1 #创建pv
vgcreate vg /dev/sdb1 # 创建vg
lvcreate -L +100%FREE vg -n data # 这里只分一个区名为/dev/mapper/vg-data
# 格式化ext4
mkfs.ext4 /dev/mapper/vg-data # 没有lvm的用/dev/sdb1
# 挂载到/data
mkdir /data
mount /dev/mapper/vg-data /data
# 5.为docker配置文件指定data-root 和国内源
mkdir /lib/systemd/system/docker.service.d
cat <<! > /lib/systemd/system/docker.service.d/override.conf #直接修改/lib/systemd/system/docker.service文件也可以,这里override.conf是为了防止archlinux滚动更新时覆盖掉原文件
[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.启动docker
systemctl start docker
5.安装dify (正题才是这里,前面其实都可忽略,获取源码后其实就两步,超级简单,5-10分钟吧,看网速)
# 1.拉取dify源码
mkdir /data/git
cd /data/git
# 注意一下,这里gitclone.com做了国内加速
git clone https://gitclone.com/github.com/langgenius/dify.git
# 2.设置环境变量
cd /data/git/dify/docker
cp .env.example .env # 隐藏文件,生成环境变量,修改端口在.env里改,修改EXPOSE_NGINX_PORT=8001
# 3.部署dify
docker compose up -d # 等待拉取镜像和启动即可
# 启动完后是这样的:
[+] 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
# 查看容器运行
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.进入dify后台
ip a #查看ip ,这里找到网卡eth0 ,ip为172.29.200.100
windows访问浏览器地址http://172.29.200.100:8001即可
注册后界面举例如下:
1.jpg
2.jpg
3.jpg
4.jpg