You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
virtual-patient/docker/服务部署文档.md

170 lines
4.9 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 虚拟病人服务部署文档
## 需要部署的服务列表
1. 问诊系统
2. 后端管理系统
3. nginx前端服务
4. rasa对话服务
5. mysql数据库
6. paddlespeech语音文字转换服务
7. minio对象存储服务
8. redis服务
## mysql数据库
- 启动mysql
~~~shell
# 首先创建本地文件夹
mkdir /var/lib/mysql
# 拉取镜像
docker pull mysql:5.7
# 启动服务
docker run -d -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql --name vp-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
~~~
- 执行数据库初始化脚本**建议使用可视化工具初始化数据**
```shell
docker cp mysql/virtual_patient_v2.0.0.sql virtual-patient-mysql:/home/virtual_patient_v2.0.0.sql
docker exec -it vp-mysql /bin/bash
mysql -uroot -p123456;
create database virtual_patient;
use virtual_patient;
source /home/virtual_patient_v2.0.0.sql;
```
## paddlespeech语音文字转换服务
~~~shell
# 进入paddlespeech文件夹依次执行命令
# 加载镜像
docker load -i virtual-patient-paddlespeech.tar.gz
# 验证镜像是否存在
docker images | grep virtual-patient-paddlespeech
# 运行容器
docker run --name virtual-patient-paddlespeech -p 8090:8090 -d virtual-patient-paddlespeech:1.0.0
# 验证容器运行
docker ps | grep virtual-patient-paddlespeech
# 查看日志是否正常
docker logs -f virtual-patient-paddlespeech
~~~
## MINIO对象存储服务
~~~shell
# 首先创建文件夹
mkdir /data/vp/minio/data
# 拉最新版本
# docker pull minio/minio
# 导入镜像
docker load -i minio/virtual-patient-minio.tar.gz
# 启动
docker run -it --name minio -p 9002:9000 -p 9001:9001 -d \
-v /data/vp/minio/data:/data \
-e 'MINIO_ROOT_USER=admin' \
-e 'MINIO_ROOT_PASSWORD=12345678' \
virtual-patient-minio:1.0.0 server /data --console-address ":9001"
# 将文件mv到对应的文件夹
mv virtual-patient-bucket-prod /data/vp/minio/data
~~~
## redis服务
## MINIO对象存储服务
~~~shell
# 进入redis文件目录下
# 构建redis镜像
docker build -t virtual-patient-redis:1.0.0 .
# 查看镜像是否正确构建
docker images | grep virtual-patient-redis
# 启动redis容器
docker run --name virtual-patient-redis -p 6379:6379 -v /data/vp/redis/data:/data -d virtual-patient-redis:1.0.0
# 查看容器运行
docker ps | grep virtual-patient-redis
~~~
## RASA对话服务
~~~shell
# 加载镜像
docker load -i virtual-patient-rasa-manager.tar.gz
# 验证镜像是否存在
docker images | grep virtual-patient-rasa-manager
# 运行容器
docker run --name virtual-patient-rasa-manager -p 5050:5050 -p 8990:8890 -d virtual-patient-rasa-manager:1.0.0
# 验证容器运行
docker ps | grep virtual-patient-rasa-manager
# 查看日志是否正常
docker logs -f virtual-patient-rasa-manager
~~~
## 问诊服务部署
- 使用dockerfile的形式进行部署端口号8899
- 注意dockerfile中的virtual-patient-web-1.0-SNAPSHOT.jar路径正确
- 构建镜像并启动
~~~shell
# 进入virtual-patient-web文件夹依次执行命令
# 构建镜像
docker build -t virtual-patient-web:1.0.0 .
# 验证镜像是否存在
docker images | grep virtual-patient-web
# 运行容器
docker run --name virtual-patient-web -p 8899:8899 -d virtual-patient-web
# 验证容器运行
docker ps | grep virtual-patient-web
# 查看日志是否正常
docker logs -f virtual-patient-web
~~~
## 后端管理系统部署
- 使用dockerfile的形式进行部署端口号8891
- 注意dockerfile中的virtual-patient-manage-1.0-SNAPSHOT.jar路径正确
~~~shell
# 进入virtual-patient-manage文件夹依次执行命令
# 构建镜像
docker build -t virtual-patient-manage:1.0.0 .
# 验证镜像是否存在
docker images | grep virtual-patient-manage
# 运行容器
docker run --name virtual-patient-manage -p 8891:8891 -d virtual-patient-manage
# 验证容器运行
docker ps | grep virtual-patient-manage
# 查看日志是否正常
docker logs -f virtual-patient-manage
~~~
## Nginx前端服务
~~~shell
# 进入nginx文件夹依次执行命令
# 修改 conf.d文件目录下servers.conf.template文件中的$UPSTREAM_WEB_SERVERS$UPSTREAM_MANAGE_SERVERS
# 构建镜像
docker build -t virtual-patient-nginx:1.0.0 .
# 验证镜像是否存在
docker images | grep virtual-patient-nginx
# 运行容器
docker run --name virtual-patient-nginx -p 80:80 -d -e UPSTREAM_WEB_SERVERS= -e UPSTREAM_MANAGE_SERVERS=ip:port virtual-patient-nginx:1.0.0
- UPSTREAM_WEB_SERVERS:虚拟病人问诊系统服务的ip:port
- UPSTREAM_MANAGE_SERVERS:虚拟病人后端管理系统服务的ip:port
# 验证容器运行
docker ps
# 查看日志是否正常
docker logs -f virtual-patient-nginx
~~~