添加离线部署文档
This commit is contained in:
parent
512f875a6d
commit
d7eeae296b
@ -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`
|
||||
185
deploy/docs/离线部署指南_20250805.md
Normal file
185
deploy/docs/离线部署指南_20250805.md
Normal 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. 注意事项
|
||||
|
||||
- 一定要配置日志轮转, 不然日志会越占越大
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
# 数据库索引
|
||||
|
||||
Loading…
Reference in New Issue
Block a user