最近在研究YMIR算法训练平台源码部署,期间也踩到过不少坑在此记录一下。以便帮助有需要的人。因为在windows上面进行源码部署会有很多坑,因此本教程是基于Ubuntu22.04桌面版进行部署,在创建虚拟机的时候需将硬盘设置大一点,我这里设置的是100G。接下来进入环境准备阶段
环境准备
-
安装conda并创建虚拟环境
-
安装git,上传数据集时会用到。安装完之后设置一下用户名和密码,否则上传数据集那里会报错
-
安装pycharm开发工具便于调试,需安装openjdk19
-
在GitHub找到ymir地址clone到本地
-
安装go环境,并设置代理地址。否则下载依赖会很慢
go env -w GOPROXY=https://goproxy.cn,direct
-
设置go环境变量
在.bashrc添加环境变量 export GOPATH=$HOME/go export PATH=$PATH:/usr/local/go/bin
前端启动
前端使用的是react、umi
- 安装nvm,为什么要安装nvm呢?因为在下载依赖时需要使用node18版本,而启动的时候则需要16版本,nvm可以进行方便的来回切换。至于为啥会出现这种情况具体原因尚未深入研究
- 下载yarn,它是基于yarn进行包管理的
- 配置代理
对于 umi 中能使用的自定义配置,你可以使用项目根目录的 .umirc.ts 文件或者 config/config.ts,值得注意的是这两个文件功能一致,仅仅是存在目录不同,2 选 1 ,.umirc.ts 文件优先级较高。此处是在.umirc.ts里边设置的。地址https://umijs.org/docs/api/configproxy: { '/api/v1': { 'target': '此处填你自己的url', 'changeOrigin': true, 'pathRewrite': { '^/api/v1' : '/api/v1' }, }, },
yarn start启动proxy: { '/server': { 'target': '此处填你自己的url', // 'changeOrigin': true, // 'pathRewrite': { '^/api/v1' : '/api/v1' }, }, },
后端服务启动
-
将目录设置为source
-
依赖下载,把里边所有requirements里边的依赖都进行安装
-
ymir_app config.py修改数据库等连接并将GRPC_CHANNEL设置为localhost:5008
-
ymir_app 设置启动参数 gunicorn -w 1 -k “uvicorn.workers.UvicornWorker” -c “app/gunicorn_conf.py” “app.main:app”
-
ymir_auth config.py修改数据库连接等配置
-
ymir_controller设置启动参数-f G:\pycharm-work\ymir\ymir\backend\src\ymir_controller\controller\server_local_config.yaml
-
启动app下的main.py,auth的main.py,controller下的server.py,monitor需启动两个服务
-
将command、backend/src下的目录设置sourceroot
-
安装mir
cd ymir/ymir/command python setup.py clean --all install mir --version
-
go服务启动
go run main.go viewer go run main.go hel 使用build命令构建可执行文件hel_server也可以使用此方式启动参数相同 ./hel_server viewer
以上就是源码启动全部流程,有问题请指出