|
|
|
|
# 虚拟病人服务部署文档
|
|
|
|
|
|
|
|
|
|
## 需要部署的服务列表
|
|
|
|
|
|
|
|
|
|
1. 问诊系统
|
|
|
|
|
2. 后端管理系统
|
|
|
|
|
3. nginx前端服务
|
|
|
|
|
4. rasa对话服务
|
|
|
|
|
5. mysql数据库
|
|
|
|
|
6. paddlespeech语音文字转换服务
|
|
|
|
|
7. minio对象存储服务
|
|
|
|
|
8. redis服务
|
|
|
|
|
|
|
|
|
|
# 准备网络 如果是使用network模式则非必要
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
|
|
|
|
|
# 查看现有网络
|
|
|
|
|
docker network list
|
|
|
|
|
|
|
|
|
|
# 创建新网络
|
|
|
|
|
docker network create virtual-patient-network
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 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
|
|
|
|
|
|
|
|
|
|
# **启用网络环境服务,生产环境请使用**
|
|
|
|
|
docker run -d -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql --name virtual-patient-mysql -e MYSQL_ROOT_PASSWORD=123456 --network virtual-patient-network 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 run --name virtual-patient-paddlespeech -p 8090:8090 -d --network virtual-patient-network 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"
|
|
|
|
|
|
|
|
|
|
# **启用网络环境服务,生产环境请使用**
|
|
|
|
|
docker run -it --name virtual-patient-minio -p 9002:9000 -p 9001:9001 -d \
|
|
|
|
|
-v /data/minio:/data \
|
|
|
|
|
-e 'MINIO_ROOT_USER=admin' \
|
|
|
|
|
-e 'MINIO_ROOT_PASSWORD=12345678' \
|
|
|
|
|
--network virtual-patient-network \
|
|
|
|
|
virtual-patient-minio:1.0.0 server /data --console-address ":9001"
|
|
|
|
|
|
|
|
|
|
# 将文件mv到对应的文件夹
|
|
|
|
|
mv virtual-patient-bucket-prod /data/vp/minio/data
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
## redis服务
|
|
|
|
|
|
|
|
|
|
~~~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 run --name virtual-patient-redis -p 6379:6379 -v /data/vp/redis/data:/data --network virtual-patient-network -d virtual-patient-redis:1.0.0
|
|
|
|
|
|
|
|
|
|
# 查看容器运行
|
|
|
|
|
docker ps | grep virtual-patient-redis
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
## RASA对话服务
|
|
|
|
|
|
|
|
|
|
### 首次部署
|
|
|
|
|
|
|
|
|
|
- 首次部署使用dockerfile的形式,后期更新直接docker restart就可以了
|
|
|
|
|
- 将代码包dockerfile中的virtual-patient-rasa-1.0-SNAPSHOT.jar拷贝到路径/data/vp下
|
|
|
|
|
|
|
|
|
|
~~~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 8990:8890 -d virtual-patient-rasa-manager:1.0.0
|
|
|
|
|
# **启用网络环境服务,生产环境请使用**
|
|
|
|
|
docker run --name virtual-patient-rasa-manager -p 8990:8890 -v /data/vp:/data/vp --network virtual-patient-network -d virtual-patient-rasa-manager:1.0.0 --spring.profiles.active=prod
|
|
|
|
|
# 验证容器运行
|
|
|
|
|
docker ps | grep virtual-patient-rasa-manager
|
|
|
|
|
# 查看日志是否正常
|
|
|
|
|
docker logs -f virtual-patient-rasa-manager
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
### 服务更新
|
|
|
|
|
|
|
|
|
|
- 将代码包virtual-patient-rasa-manage-1.0-SNAPSHOT.jar拷贝到路径/data/vp下
|
|
|
|
|
- 重启容器
|
|
|
|
|
|
|
|
|
|
~~~shell
|
|
|
|
|
docker restart virtual-patient-rasa-manage
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
## 问诊服务部署
|
|
|
|
|
|
|
|
|
|
### 首次部署
|
|
|
|
|
|
|
|
|
|
- 端口号:8899
|
|
|
|
|
- 首次部署使用dockerfile的形式,后期更新直接docker restart就可以了
|
|
|
|
|
- 将代码包dockerfile中的virtual-patient-web-1.0-SNAPSHOT.jar拷贝到路径/data/vp下
|
|
|
|
|
|
|
|
|
|
~~~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 run --name virtual-patient-web -p 8899:8899 -v /data/vp:/data/vp --network virtual-patient-network -d virtual-patient-web:1.0.0 --spring.profiles.active=prod
|
|
|
|
|
# 验证容器运行
|
|
|
|
|
docker ps | grep virtual-patient-web
|
|
|
|
|
# 查看日志是否正常
|
|
|
|
|
docker logs -f virtual-patient-web
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
### 服务更新
|
|
|
|
|
|
|
|
|
|
- 将代码包virtual-patient-manage-1.0-SNAPSHOT.jar拷贝到路径/data/vp下
|
|
|
|
|
- 重启容器
|
|
|
|
|
|
|
|
|
|
~~~shell
|
|
|
|
|
docker restart virtual-patient-web
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
## 后端管理系统部署
|
|
|
|
|
|
|
|
|
|
- 端口号:8891
|
|
|
|
|
- 首次部署使用dockerfile的形式,后期更新直接docker restart就可以了
|
|
|
|
|
- 将代码包virtual-patient-manage-1.0-SNAPSHOT.jar拷贝到路径/data/vp下
|
|
|
|
|
|
|
|
|
|
### 首次部署
|
|
|
|
|
|
|
|
|
|
~~~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 run --name virtual-patient-manage -p 8891:8891 -v /data/vp:/data/vp --network virtual-patient-network -d virtual-patient-manage --spring.profiles.active=prod
|
|
|
|
|
# 验证容器运行
|
|
|
|
|
docker ps | grep virtual-patient-manage
|
|
|
|
|
# 查看日志是否正常
|
|
|
|
|
docker logs -f virtual-patient-manage
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
### 服务更新
|
|
|
|
|
|
|
|
|
|
- 将代码包virtual-patient-manage-1.0-SNAPSHOT.jar拷贝到路径/data/vp下
|
|
|
|
|
- 重启容器
|
|
|
|
|
|
|
|
|
|
~~~shell
|
|
|
|
|
docker restart 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={ip}:{port} -e UPSTREAM_MANAGE_SERVERS={ip}:{port} virtual-patient-nginx:1.0.0
|
|
|
|
|
# UPSTREAM_WEB_SERVERS:虚拟病人问诊系统服务的ip:port
|
|
|
|
|
# UPSTREAM_MANAGE_SERVERS:虚拟病人后端管理系统服务的ip:port
|
|
|
|
|
|
|
|
|
|
# **启用网络环境服务,生产环境请使用**
|
|
|
|
|
docker run --name virtual-patient-nginx -p 80:80 --network virtual-patient-network -v /data/vp/dist:/usr/share/nginx/html/dist -d -e UPSTREAM_WEB_SERVERS=virtual-patient-web:8899 -e UPSTREAM_MANAGE_SERVERS=virtual-patient-manage:8891 virtual-patient-nginx:1.0.0
|
|
|
|
|
# 验证容器运行
|
|
|
|
|
docker ps
|
|
|
|
|
# 查看日志是否正常
|
|
|
|
|
docker logs -f virtual-patient-nginx
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
### 服务更新
|
|
|
|
|
|
|
|
|
|
- 将前端代码包dist文件夹拷贝到路径/data/vp/下
|
|
|
|
|
- 重启容器
|
|
|
|
|
|
|
|
|
|
~~~shell
|
|
|
|
|
docker restart virtual-patient-nginx
|
|
|
|
|
~~~
|