diff --git a/README.md b/README.md index 498ac0ac..7356b6d7 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,9 @@ java -jar target/qaup-admin.jar 2. WebSocket消息通过`/topic`前缀向客户端广播 3. 使用`QuapDataAdapter`获取车辆和司机数据,避免直接访问DAO +## 离线部署 +- deploy\docs\离线部署指南_20250805.md + ## 版本信息 - 当前版本: 1.0.1 - 更新日志: 详见 `change_log.md` \ No newline at end of file diff --git a/deploy/docs/离线部署指南_20250805.md b/deploy/docs/离线部署指南_20250805.md new file mode 100644 index 00000000..2286bd95 --- /dev/null +++ b/deploy/docs/离线部署指南_20250805.md @@ -0,0 +1,185 @@ +# QAUP 系统离线部署指南 + +## 概述 + +本文档详细介绍了如何在无互联网连接的内网环境中部署 QAUP 系统。离线部署包含所有必需的 Docker 镜像、配置文件和脚本,确保在完全隔离的网络环境中也能成功部署。 + +## 离线部署流程 + +### 阶段一:准备离线部署包(在有网络环境中进行) + +#### 1. 环境要求 + +**准备环境**: +- ubuntu22.04 (和目标系统一致) + +#### 2. 下载docker离线部署包 + +- download_debs.sh +```bash +# 下载依赖脚本, 需提前安装apt-rdepends, 注意修改下载目录名称. +# 使用 sh xxx.sh 软件包名称1 软件包名称2 ... 下载指定软件包及其所有依赖 +if [ $# -eq 0 ]; then + echo "使用方法: $0 软件包名称1 [软件包名称2 ...]" + exit 1 +fi + +# 创建下载目录 +mkdir -p debs_curl + +cd debs_curl + +# 下载所有指定的主软件包及其所有依赖 +for package in "$@"; do + echo "正在下载 $package 及其所有依赖..." + + # 使用 apt-rdepends 获取所有依赖(直接和间接的) + apt-rdepends "$package" 2>/dev/null | grep -v "^ " | while read -r pkg; do + if [ ! -z "$pkg" ]; then + echo "下载包: $pkg" + apt-get download "$pkg" 2>/dev/null || true + fi + done +done + +echo "下载完成!所有包已保存在 debs_$pkg 目录中" +``` + +#### 3. 导出postgres数据库数据 + +- 进入postgres容器 +```bash +docker exec -it qaup-postgres /bin/bash +``` + +- 导出postgres数据库数据 +```bash +pg_dump -U postgres -d qaup -f ./qaup.sql +``` + +#### 4. 准备 Docker 镜像 + +- 导出所需镜像, postgis, redis, openjdk:21 +```bash + +# 默认会在当前目录下生成 xxx.tar 文件 +docker save -o xxx.tar 镜像:版本 +``` + + + +#### 5. 准备服务部署包 + +- Dockerfile +```Dockerfile +FROM openjdk:21 +VOLUME /tmp +ADD qaup-app.jar app.jar +RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] +``` + +- build.sh +```bash +docker run -d --name qaup-app qaup-app +```bash +docker stop qaup-app +docker rm qaup-app +docker rmi qaup-app:v1 +docker build -t qaup-app:v1 . +docker run -d -p 8080:8080 --restart=always --name qaup-app qaup-app:v1 +``` + + +### 阶段二:离线部署(在客户内网环境中进行) + +#### 1. 传输部署包 + + + +#### 2. 安装docker + +- 进入解压后的debs_xxxx 目录 +- 安装docker +```bash +dpkg -i --force-all *.deb +``` + +- 查看docker 是否安装成功 +```bash +docker --version +``` +- 设置docker 开机自启动 +```bash +systemctl enable docker +``` +- 配置日志轮转 +- - 编辑 /etc/docker/daemon.json +- - 添加 +```json +{ + "log-driver": "json-file", + "log-opts": {"max-size": "10m", "max-file": "3"} +} +- 安装docker-compose 可选 + +#### 3. 导入镜像 + +```bash +# 导入镜像 +docker load -i xxx.tar +``` + + + +#### 4. 启动容器 +-启动 posggres +```bash +docker run --name qaup-postgis -e POSTGRES_PASSWORD=123456 -e POSTGRES_DB=qaup -p 5432:5432 -d --restart always 镜像名:版本 +``` +- 启动 redis +```bash +docker run -d --name qaup-redis --restart always 镜像名:版本 +``` + +- 导入数据库 +```bash +# 复制数据库文件到容器 +docker cp qaup.sql qaup-postgres:/ +# 进入容器 +docker exec -it qaup-postgres /bin/bash +# 导入数据库 +psql -U postgres -d qaup -f qaup.sql + +``` + +#### 5. 启动后台服务 + +- 查看启动的postgres数据库和redis缓存的地址. 修改配置文件中的postgres和redis的ip +```bash +docker inspect 容器名 +# 找里面 "IPAddress": "172.22.0.4", 这个ip地址 +``` +- 使用maven 把服务打为jar包, 修改jar包名为qaup-app 和 Dockerfile +- 新建文件夹, 将Dockerfile,build.sh和qaup-app.jar 放入这个文件夹中. +- 运行build.sh脚本, 会自动启动容器和服务 +```bash + sh build.sh +``` + +### 6. 查看后台服务 +```bash +docker logs -n 200 容器名 + +``` +### 7. 更新后台服务 + +- 重新打一个 jar包 +- 上传到当前原先jar包目录 +- sh build.sh 构建服务 + +### 8. 注意事项 + +- 一定要配置日志轮转, 不然日志会越占越大 + + diff --git a/qaup-admin/src/main/resources/application-druid.yml b/qaup-admin/src/main/resources/application-druid.yml index 840d9c66..bc768a6e 100644 --- a/qaup-admin/src/main/resources/application-druid.yml +++ b/qaup-admin/src/main/resources/application-druid.yml @@ -6,8 +6,8 @@ spring: druid: # 主库数据源 master: -# url: jdbc:postgresql://10.0.0.58:5433/qaup?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai - url: jdbc:postgresql://172.17.0.2:5432/qaup?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai + url: jdbc:postgresql://10.0.0.58:5433/qaup?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai + # url: jdbc:postgresql://172.17.0.2:5432/qaup?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai # url: jdbc:postgresql://localhost:5432/qaup?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai username: postgres # password: 123456 diff --git a/qaup-admin/src/main/resources/application.yml b/qaup-admin/src/main/resources/application.yml index 1d24e4ee..acbd427a 100644 --- a/qaup-admin/src/main/resources/application.yml +++ b/qaup-admin/src/main/resources/application.yml @@ -85,9 +85,9 @@ spring: redis: # 地址 # host: localhost -# host: 10.0.0.58 + host: 10.0.0.58 - host: 172.17.0.3 + # host: 172.17.0.3 # 端口,默认为6379 port: 6379 # 数据库索引