# 虚拟病人服务部署文档 ## 需要部署的服务列表 1. 问诊系统 2. 后端管理系统 3. nginx前端服务 4. rasa对话服务 5. mysql数据库 6. paddlespeech语音文字转换服务 7. minio对象存储服务 ## 问诊服务部署 使用dockerfile的形式进行部署,端口号:8899 注意dockerfile中的virtual-patient-web-1.0-SNAPSHOT.jar路径正确 ~~~dockerfile # 设置基础镜像 FROM registry.cn-beijing.aliyuncs.com/longbei/jdk:latest # 复制java jar 到容器中 COPY virtual-patient-web-1.0-SNAPSHOT.jar /data/vp/virtual-patient-web-1.0-SNAPSHOT.jar # 暴漏服务端口 EXPOSE 8899 # 设置启动命令 ENTRYPOINT ["java","-Xms256m","-Xmx1g","-Dspring.profiles.active=prod","-Dfile.encoding=utf-8","-Duser.timezone=Asia/Shanghai","-jar","/data/vp/virtual-patient-rasa-1.0-SNAPSHOT.jar"] ~~~ 构建镜像并启动 ~~~shell # 构建镜像 docker build -t virtual-patient-web:1.0.0 . # 验证镜像是否存在 docker images # 运行容器 docker run --name virtual-patient-web -p 8899:8899 -d virtual-patient-web # 验证容器运行 docker ps # 查看日志是否正常 docker logs -f virtual-patient-web ~~~ ## 后端管理系统部署 使用dockerfile的形式进行部署,端口号:8891 注意dockerfile中的virtual-patient-manage-1.0-SNAPSHOT.jar路径正确 ~~~dockerfile # 设置基础镜像 FROM registry.cn-beijing.aliyuncs.com/longbei/jdk:latest # 复制java jar 到容器中 COPY virtual-patient-manage-1.0-SNAPSHOT.jar /data/vp/virtual-patient-manage-1.0-SNAPSHOT.jar # 暴漏服务端口 EXPOSE 8891 # 设置启动命令 ENTRYPOINT ["java","-Xms256m","-Xmx1g","-Dspring.profiles.active=prod","-Dfile.encoding=utf-8","-Duser.timezone=Asia/Shanghai","-jar","/data/vp/virtual-patient-manage-1.0-SNAPSHOT.jar"] ~~~ 进入virtual-patient-manage文件夹,依次执行命令 ~~~shell # 构建镜像 docker build -t virtual-patient-manage:1.0.0 . # 验证镜像是否存在 docker images # 运行容器 docker run --name virtual-patient-manage -p 8891:8891 -d virtual-patient-manage # 验证容器运行 docker ps # 查看日志是否正常 docker logs -f virtual-patient-manage ~~~ ## Nginx前端服务 使用dockerfile的形式进行部署 ~~~dockerfile # 设置基础镜像 FROM nginx:1.25 # 复制文件到容器中 COPY nginx/html /usr/share/nginx/html COPY nginx/logs /var/log/nginx COPY nginx/conf.d /etc/nginx/conf.d COPY nginx/ssl /data/vp/nginx/ssl # 暴漏服务端口 EXPOSE 80 # 设置容器的默认入口点 ENTRYPOINT [ "/docker-entrypoint.sh" ] # 设置默认的 CMD 参数 CMD [ "nginx", "-g", "daemon off;" ] ~~~ 进入nginx文件夹,依次执行命令 ~~~shell # 构建镜像 docker build -t virtual-patient-nginx:1.0.0 . # 验证镜像是否存在 docker images # 运行容器 docker run --name virtual-patient-nginx -p 80:80 -d virtual-patient-nginx # 验证容器运行 docker ps # 查看日志是否正常 docker logs -f virtual-patient-nginx ~~~ ## RASA对话服务 ~~~shell # 加载镜像 docker load -i virtual-patient-rasa-manager.tar.gz # 验证镜像是否存在 docker images # 运行容器 docker run --name virtual-patient-rasa-manager -p 5050:5050 -p 8990:8890 -d virtual-patient-rasa-manager # 验证容器运行 docker ps # 查看日志是否正常 docker logs -f virtual-patient-rasa-manager ~~~ ## 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 mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 ~~~ 启动mysql后,执行数据库初始化脚本 ## paddlespeech语音文字转换服务 ~~~shell # 加载镜像 docker load -i virtual-patient-paddlespeech.tar.gz # 验证镜像是否存在 docker images # 运行容器 docker run --name virtual-patient-paddlespeech -p 8090:8090 -d virtual-patient-paddlespeech # 验证容器运行 docker ps # 查看日志是否正常 docker logs -f virtual-patient-paddlespeech ~~~ ## MINIO对象存储服务 ~~~shell # 首先创建文件夹 mkdir /data/vp/minio/data # 将文件mv到对应的文件夹 mv virtual-patient-bucket-prod /data/vp/minio/data # 拉最新版本 docker pull minio/minio # 启动 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' \ minio/minio server /data --console-address ":9001" ~~~