还在为万悟平台部署抓瞎?不知道该如何下手、镜像下载太慢,部署过程常遇难题?别慌,这篇超详细手把手指南来了,不管你是想搭本地调试环境,还是部署到服务器正式使用,从环境准备到最终验证,每一步都给你讲得明明白白,新手也能跟着做。

目录

万悟介绍

部署条件

部署过程

验证服务

服务器部署万悟(导出镜像)

万悟介绍

元景万悟智能体平台是今年7月19日开源的智能体开发平台,商用license友好,同时拥有模型纳管、RAG知识库构建、MCP引入、联网搜索、工作流编排、0代码生成智能体等功能,使用体验上和dify类似,本期来为大家详细讲述下如何部署万悟平台。

先附上万悟链接:

万悟github:https://github.com/UnicomAI/wanwu

万悟gitee: https://gitee.com/unicomai/wanwu

部署条件

  • 硬件:CPU:8核或16核 ;内存:32G ;硬盘200G以上;不需要GPU(amd64 / arm64)

这是万悟官方给出的条件,经过博主本地部署验证,凡是内存低于32G的,在部署后可能都会出现问题,比如docker无法正常加载,容器启动报错,elastic由于内存不足报错等等,建议还是配置满足条件的个人电脑或者服务器来部署万悟。

  • 软件:docker(最好是较新的版本)

由于万悟是基于docker服务启动的容器,所以docker是必需的,建议去官网根据自己的电脑选择安装包下载。

官网地址:https://www.docker.com/products/docker-desktop/https://www.docker.com/products/docker-desktop/

  • 接下来是安装docker的前提条件(已装好的同学可以略过):
  1. 开启虚拟化:打开任务管理器,切换到“性能”选项卡。查看CPU部分,确认“虚拟化”状态为“已启用”。如果未启用,需要进入电脑的BIOS/UEFI设置中开启。
  2. 启用Windows功能:在开始菜单搜索“启用或关闭Windows功能”,打开后确保至少勾选了“Hyper-V”、“适用于linux的windows子系统”、“虚拟机平台”等选项(如果没有就不用勾选)。这与WSL 2密切相关。
  3. 系统版本要求:确保Windows 10版本为2004(Build 19041)或更高,或者Windows 11。
  • 关于wsl2:

安装完docker的过程中会自动安装或配置 WSL 2,WSL 2是“适用于 Linux 的 Windows 子系统”的第二代架构版本,可以把它理解为一个由微软官方开发和维护的、深度集成在 Windows 系统中的轻量级虚拟机,使用wsl可以在终端里输入"wsl"进入。

  • 关于镜像:

首次安装docker以及没下载过镜像的同学请注意,docker默认镜像的存储位置是C盘,很多人拉取镜像后会出现C盘爆红的情况。

建议安装好docker后,先在设置里修改镜像存储位置

万悟平台所需镜像大概在20~30G左右,可以更换到有充足空间的位置。

后续拉取镜像时,由于国内有速度限制,拉取会比较慢,可以配置下docker的镜像源:

{
    "registry-mirrors": [
    "https://dockerpul1.com",
    "https://docker.1panel.live",
    "https://dockerproxy.cn",
    "https://docker-proxy.741001.xyz"
    ]
}

部署过程

官方给的部署流程在主页的“快速开始”栏位,可对照参考

官方链接:

https://git‘ee.com/unicomai/wanwu#-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8Bhttps://gitee.com/unicomai/wanwu#-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

部署教程:

  1. 首次运行前

        1.1 拷贝环境变量文件

  • cp .env.bak .env

        1.2 根据系统架构,修改.env文件中的WANWU_ARCHWANWU_EXTERNAL_IP变量

        这一步中的WANWU_EXTERNAL_IP可以在终端里输入“ipconfig”,找到无线局域网适配器 WLAN,查看IPv4地址。

  • # amd64 / arm64
    WANWU_ARCH=amd64
    
    # external ip port(注意如果浏览器访问非localhost部署的万悟,则需要修改localhost为对外ip,例如192.168.xx.xx)
    WANWU_EXTERNAL_IP=localhost

        1.3 配置.env文件中的WANWU_BFF_JWT_SIGNING_KEY变量

        一串自定义复杂随机字符串,用于生成 jwt token,填什么都可以。

  • # bff
    WANWU_BFF_JWT_SIGNING_KEY=

        1.4 创建docker运行网络

        如果不确定之前有没有创建过wanwu-net网络,可以输入“docker network ls”查询。

  • docker network create wanwu-net

     2. 启动服务(首次运行会自动从Docker Hub拉取镜像)

# amd64系统执行:
docker compose --env-file .env --env-file .env.image.amd64 up -d
# arm64系统执行:
docker compose --env-file .env --env-file .env.image.arm64 up -d

     3. 登录系统:http://localhost:8081 

默认用户:admin
默认密码:Wanwu123456

     4. 关闭服务

# amd64系统执行:
docker compose --env-file .env --env-file .env.image.amd64 down
# arm64系统执行:
docker compose --env-file .env --env-file .env.image.arm64 down

验证服务

最终可以在docker内查看各容器的启动状态,或者在终端里"docker ps -a" 检查有没有异常退出的容器(mysql-wanwu-setup、 elastic-wanwu-setup 这两个容器退出是正常的)

服务器部署万悟(导出镜像)

某些企业提供的服务器可能由于内部网络限制,无法直接docker pull拉取镜像。

解决办法:我们需要在个人电脑上拉取万悟的镜像并导出,再通过其他传输工具传到服务器上,最后导入镜像并部署万悟。

具体步骤如下:

1. 先在个人电脑上git clone万悟代码仓库。

2. 如果个人电脑与服务器架构(amd64/arm64)一致,就按照上面的部署教程来部署,在部署过程中会自动拉取镜像;

如果架构不一致,需要手动输入以下指令来拉取镜像,<image>部分的镜像名称和标签在代码包中的 .env.image.amd64 (.env.image.arm64) 文件中。

# image中填 .env.image.amd64 (.env.image.arm64) 中的镜像名称:标签
# 拉取arm64架构的镜像
docker pull --platform=linux/arm64/v8 <image>
# 拉取amd64架构的镜像
docker pull --platform=linux/amd64 <image>

3. 查看代码包中的 .env.image.axx64 文件,根据镜像包清单,输入 docker images 对照镜像,查看是否有遗漏。

# 服务器是amd64系统
cat .env.image.amd64
# 服务器是arm64系统
cat .env.image.arm64
# 查看已拉取的镜像
docker images

4. 根据 .env.image.axx64 文件导出万悟全套镜像:

# e.g. docker save -o golang-1.24.6-bookworm.tar golang:1.24.6-bookworm
docker save -o 输出文件.tar 镜像名:标签

在这一步中,有的镜像会比较大,比如rag镜像有4.24GB,在传输过程中非常耗时。针对这种较大的镜像,可以进一步压缩:

# 用gzip将tar文件压缩成.tar.gz
gzip xxx.tar

gzip命令的好处就是可以压缩成tar.gz后,之后可以直接docker load镜像,无需解压。

5. 在服务器中上传导出的镜像,上传完毕后,导入全部镜像:

单个镜像导入的命令:

docker load -i 镜像文件名

快捷操作:可以将所有的镜像放在同一目录下,写一个批量导入镜像的脚本,示例如下

#!/bin/bash

# 定义要处理的镜像文件格式(tar和tar.gz)
image_files=(*.tar *.tar.gz)

# 检查是否存在符合条件的文件
if [ ${#image_files[@]} -eq 0 ]; then
    echo "提示:当前目录下未找到.tar或.tar.gz格式的镜像文件"
    exit 1
fi

# 循环导入镜像
for file in "${image_files[@]}"; do
    # 跳过可能的目录(只处理文件)
    if [ -f "$file" ]; then
        echo "----------------------------------------"
        echo "开始导入镜像文件: $file"
        # 执行docker导入命令
        docker load -i "$file"
        # 检查导入结果并打印信息
        if [ $? -eq 0 ]; then
            echo "镜像文件 $file 导入成功"
        else
            echo "镜像文件 $file 导入失败"
        fi
    fi
done

echo "----------------------------------------"
echo "所有镜像文件处理完毕"

将上述代码保存为 xxx.sh , 赋予权限 chmod +x xxx.sh , 运行脚本 ./xxx.sh 即可。

6. 导入镜像后,按照部署教程来部署即可。

Tips: 上述方法也适用于帮助他人部署万悟,假设自己有全套的镜像并部署成功,可以导出镜像后,传输到他人电脑上进一步部署。

有相关问题或交流经验,欢迎在评论区留言!

    Logo

    更多推荐