9.9 KiB
主干AI实验室
一、技术栈
-
运维
- Docker:项目部署
- Nginx:前端项目部署
- Kong: 网关
- Prometheus:服务监控
- Grafana:数据可视化
-
前端
- Vue:Vben Admin作为框架
- 开发语言:TypeScript/JavaScript
- Vue:Vben Admin作为框架
-
后端
- Ktor:业务后端
- 开发语言:Java/Kotlin
- FastAPI:实验室AI模块后端程序
- 开发语言:Python
- RabbitMQ:消息队列
- Ktor:业务后端
-
数据库
- Radis:内存数据库
- PostgreSQL:实验室业务数据库
- Milvus:实验室AI模块向量数据库
-
人工智能
- LangChain:自定义LLM流程核心
- LangGraph:Agent构建核心
-
对象存储服务器
- MinIO:实验室对象存储服务器
二、端口使用
公网域名:s1.ronsunny.cn
| 公网端口 | 内网端口 | docker端口 | docker服务/Host | 技术栈 | 功能作用 |
|---|---|---|---|---|---|
| 8090 | ce_vue | Vue | vue前端服务 | ||
| 8089 | Ktor | 实验室业务后端 | |||
| 13011 | ce_pybackend | FastAPI | 实验室AI后端 | ||
| 5432 | 5432 | ce_postgres | PostgreSQL | PostgreSQL数据库 | |
| 6379 | 6379 | ce_redis | Redis | Radis数据库 | |
| 2379 | ce_etcd | Etcd | Etcd,Key-Value 存储,给ce_milvus使用 | ||
| 9000 | 9000 | 9000 | ce_minio | MinIO | MinIO数据访问 |
| 9001 | 9001 | ce_minio | MinIO | MinIO管理界面,minioadmin:minioadmin | |
| 19530 | 19530 | ce_milvus | Milvus | Minvus数据访问 | |
| 9091 | 9091 | ce_milvus | Milvus | Minvus管理界面,需要加/webui,无需登录 | |
| 3000 | 3000 | ce_attu | Attu | Attu,Minvus | |
| 8090 | 8090 | 8090 | ce_kong | Kong | Kong网关 |
| 8001 | 8001 | ce_kong | Kong | Kong Admin API | |
| 8002 | 8002 | ce_kong | Kong | Kong管理界面,无需登录 | |
| 8444 | 8444 | ce_kong | Kong | Kong Admin API 的 HTTPS 端口 | |
| 8088 | ws-scrcpy | Android远程框架 | |||
| 5672 | 5672 | ce_rabbitmq | RabbitMQ | RabbitMQ 客户端连接端口 | |
| 15672 | 15672 | ce_rabbitmq | RabbitMQ | RabbitMQ管理界面,admin:123456 | |
| 9323 | 9323 | Docker | Docker debug端口 | ||
| 3001 | 3001 | ce_grafana | Grafana | Grafana管理界面,admin:123456 | |
| 9090 | 9090 | ce_prometheus | Prometheus | Prometheus监控/管理界面,无需登录 | |
| 9121 | ce_redis_exporter | Prometheus | Prometheus监控Radis的工具 | ||
| ce_postgres_exporter | Prometheus | Prometheus监控PostgreSQL的工具 | |||
| 9100 | ce_node_exporter | Prometheus | Prometheus监控主机的工具 | ||
| 13011 | 13011 | 13011 | Harbor | Harbor | Harbor,admin:bbit |
| 8088 | 建议后续关闭,原Android远程框架,现已由网关控制 | ||||
| 8089 | 建议后续关闭,原Ktor后端服务,现已由网关控制 |
三、新部署
3.1 ktor
-
将Ktor程序运行installDist打包程序。
-
将程序覆盖于服务器/opt/final/ktor文件夹
-
重启服务
sudo systemctl restart ktor.service sudo systemctl status ktor.service
3.2 FastAPI
-
打包镜像:运行Dockerfile
docker build -t ce_pybackend . -
打标签
docker tag ce_pybackend:latest s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:latest docker tag ce_pybackend:latest s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:1.5 -
推送镜像
docker push s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:1.5 docker push s1.ronsunny.cn:13011/bbit_ai/ce_pybackend:latest -
(服务器)重启Compose
docker-compose pull backend docker compose up -d
3.3 Vue
-
打包项目
pnpm build:antd -
打包镜像:运行Dockerfile
docker build -t ce_vue . -
打标签
docker tag ce_vue:latest s1.ronsunny.cn:13011/bbit_ai/ce_vue:latest docker tag ce_vue:latest s1.ronsunny.cn:13011/bbit_ai/ce_vue:1.1.0 -
推送镜像
docker push s1.ronsunny.cn:13011/bbit_ai/ce_vue:1.1.0 docker push s1.ronsunny.cn:13011/bbit_ai/ce_vue:latest -
(服务器)重启Compose
docker-compose pull vue docker compose up -d
3.4 更新并重启Compose
docker compose down
docker compose pull vue backend
docker compose up -d
docker image prune -f
四、配置
-
安装顺序
- 安装docker
- 运行基本环境infra-compose.yaml
- 安装Harbor
- 推送镜像
- 运行前后端程序docker-compose.yaml
-
Harbor
-
添加用户
-
添加仓库
-
添加仓库用户使用权限
-
(2x客户端)登录
docker login http://s1.ronsunny.cn:13011
-
-
Prometheus
-
设置docker metrics配置文件
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://mirror.baidubce.com", "https://docker.nju.edu.cn" ], "metrics-addr": "10.10.10.9:9323", "experimental": true, "insecure-registries": ["s1.ronsunny.cn:13011"] } -
重启docker
sudo systemctl restart docker
-
-
RabbitMQ
- 添加用户
- 添加Vhost
-
[Grafana][https://grafana.com/grafana/dashboards/]
-
创建Prometheus数据源
-
增加配置
项目 代码 描述 MinIO 13502 Docker 9621 PostgreSQL 9628 主机 1860 RabbitMQ 10991 Redis 11835 Prometheus 19268 主机 中文版 8919
-
五、其他
旧部署
后端
ktor
-
将Ktor程序运行installDist打包程序。
-
将程序覆盖于服务器/opt/final/ktor文件夹
-
将项目目录server/service的ktor.service文件置于服务器/etc/systemd/system/目录
-
输入命令使服务开机自启
sudo systemctl enable ktor.service sudo systemctl status ktor.service sudo systemctl restart ktor.service
python
-
打包Docker
docker build -t ce_pybackend . -
保存Image为文件
docker save -o ce-pybackend.tar ce_pybackend -
将保存好的Image
ce-pybackend.tar上传到服务器 -
删除服务器的旧版镜像
docker rmi ce_pybackend:latest -
读取上传的新镜像
docker load -i ce_pybackend.tar
其他命令:
-
测试运行docker
docker run -d -p 13011:13011 ce_pybackend -
调试运行项目
uvicorn app:app --reload --host 0.0.0.0 --port 13011 -
docker日志查看
docker logs -f ce_pybackend
前端
直接在wsl中build,不要install
-
在vue目录运行docker打包命令
pnpm build:docker -
将Image保存为文件
docker save -o vue.tar ce_vue -
将保存好的Image
vue.tar上传到服务器 -
停掉之前的docker compose
docker-compose down -
删除之前的Image
docker rmi ce_vue:latest -
在服务器读取Image
docker load -i vue.tar -
重新运行
docker compose up -d
docker
内网地址
windows:host.docker.internal
Linux:ip addr show docker0 查看
相关命令
查看所有镜像
docker images
删除镜像
docker rm
删除容器
docker rmi 镜像名:Tag
删除无用镜像
docker image prune
Vue项目使用
- 本地运行dist文件夹
npm install -g http-server
cd dist
http-server -p 8080
- VBen项目运行方法
-
下载最新node
-
开发
# 进入项目目录 cd vue-vben-admin # 使用项目指定的pnpm版本进行依赖安装 npm i -g corepack # 安装依赖 pnpm install # 启动项目 pnpm dev -
本地部署
构建 pnpm build 预览 pnpm preview