添加离线部署文档

This commit is contained in:
haotianmingyue 2025-08-05 17:52:37 +08:00
parent 512f875a6d
commit d7eeae296b
4 changed files with 192 additions and 4 deletions

View File

@ -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`

View File

@ -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. 注意事项
- 一定要配置日志轮转, 不然日志会越占越大

View File

@ -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

View File

@ -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
# 数据库索引