Просмотр исходного кода

docs: 更新部署文档为容器化方案

- deploy/README.md: systemd → Podman 容器化部署
- CLAUDE.md: 更新部署命令、TDengine URL、.env 加载方式
mqy20260511
humanleft 2 недель назад
Родитель
Сommit
fd11440482
2 измененных файлов: 65 добавлений и 34 удалений
  1. 8
    8
      CLAUDE.md
  2. 57
    26
      deploy/README.md

+ 8
- 8
CLAUDE.md Просмотреть файл

55
 ### TDengine (Time-Series Database)
55
 ### TDengine (Time-Series Database)
56
 - Used for high-frequency IoT telemetry ingestion
56
 - Used for high-frequency IoT telemetry ingestion
57
 - Connection pool: HikariCP via `TDengineService`
57
 - Connection pool: HikariCP via `TDengineService`
58
-- Connects to `jdbc:TAOS://localhost:6030/`
58
+- Connects to `jdbc:TAOS://127.0.0.1:6031/`
59
 - Super-table pattern with column caching (`stableColumnCache`)
59
 - Super-table pattern with column caching (`stableColumnCache`)
60
 
60
 
61
 ### Redis
61
 ### Redis
71
 - `iot-platform/src/main/resources/application.yml` — Main config (port 8887, Redis, MyBatis, Actuator)
71
 - `iot-platform/src/main/resources/application.yml` — Main config (port 8887, Redis, MyBatis, Actuator)
72
 - `iot-platform/src/main/resources/application-druid.yml` — Database connection (Druid pool, master/slave)
72
 - `iot-platform/src/main/resources/application-druid.yml` — Database connection (Druid pool, master/slave)
73
 - `iot-platform/src/main/resources/logback-spring.xml` — Logging config with rolling
73
 - `iot-platform/src/main/resources/logback-spring.xml` — Logging config with rolling
74
-- `.env` — Environment variables (passwords, credentials) loaded by systemd or start.sh
74
+- `.env` — Environment variables (passwords, credentials) loaded by start-container.sh
75
 
75
 
76
 ## Environment Variables
76
 ## Environment Variables
77
 
77
 
134
 
134
 
135
 ## Deployment
135
 ## Deployment
136
 
136
 
137
-Production deployment uses systemd on online180 (47.104.204.180).
137
+Production deployment uses Podman containers on online180 (47.104.204.180).
138
 
138
 
139
 ```bash
139
 ```bash
140
 # Deploy from local
140
 # Deploy from local
141
 cd deploy
141
 cd deploy
142
-./deploy.sh --build          # Build and deploy
142
+./deploy.sh --build          # Build, build image, and deploy
143
 ./deploy.sh --jar <path>     # Deploy specific jar
143
 ./deploy.sh --jar <path>     # Deploy specific jar
144
 
144
 
145
-# Server management
146
-systemctl status iot-platform
147
-systemctl restart iot-platform
148
-journalctl -u iot-platform -f
145
+# Container management
146
+podman ps | grep iot-platform
147
+podman logs -f iot-platform
148
+podman restart iot-platform
149
 ```
149
 ```
150
 
150
 
151
 See `deploy/README.md` for full deployment documentation.
151
 See `deploy/README.md` for full deployment documentation.

+ 57
- 26
deploy/README.md Просмотреть файл

2
 
2
 
3
 ## 概述
3
 ## 概述
4
 
4
 
5
-本项目使用 systemd 管理进程,通过 `deploy.sh` 脚本实现一键构建、上传、备份、健康检查和自动回滚。
5
+本项目使用 Podman 容器化部署,通过 `deploy.sh` 脚本实现一键构建、上传、构建镜像、健康检查和自动回滚。
6
 
6
 
7
 ## 服务器环境
7
 ## 服务器环境
8
 
8
 
9
 - **服务器**: online180 (47.104.204.180)
9
 - **服务器**: online180 (47.104.204.180)
10
 - **OS**: Alibaba Cloud Linux 3
10
 - **OS**: Alibaba Cloud Linux 3
11
-- **Java**: OpenJDK 1.8.0_412
11
+- **容器运行时**: Podman 4.9.4 (docker 兼容)
12
+- **Java**: OpenJDK 1.8 (容器内)
12
 - **安装目录**: `/opt/iot-platform/`
13
 - **安装目录**: `/opt/iot-platform/`
13
-- **服务名称**: `iot-platform`
14
+- **容器名称**: `iot-platform`
14
 
15
 
15
 ## 目录结构
16
 ## 目录结构
16
 
17
 
17
 ```
18
 ```
18
 /opt/iot-platform/
19
 /opt/iot-platform/
19
 ├── iot-platform.jar          # 当前运行版本
20
 ├── iot-platform.jar          # 当前运行版本
21
+├── Dockerfile                # 容器镜像构建定义
22
+├── start-container.sh        # 容器启动脚本(加载 .env)
20
 ├── .env                      # 环境变量(密码、凭据)
23
 ├── .env                      # 环境变量(密码、凭据)
21
 ├── backup/                   # 版本备份(自动创建)
24
 ├── backup/                   # 版本备份(自动创建)
22
 ├── bin/
25
 ├── bin/
23
 │   ├── deploy.sh             # 一键部署脚本(本地运行)
26
 │   ├── deploy.sh             # 一键部署脚本(本地运行)
24
 │   └── health-check.sh       # 健康检查脚本
27
 │   └── health-check.sh       # 健康检查脚本
25
 ├── config/                   # 线上专属配置
28
 ├── config/                   # 线上专属配置
26
-└── logs/                     # 日志输出
29
+└── logs/                     # 日志输出(宿主机挂载)
27
 ```
30
 ```
28
 
31
 
29
 ## 快速开始
32
 ## 快速开始
30
 
33
 
31
 ### 首次部署(服务器初始化)
34
 ### 首次部署(服务器初始化)
32
 
35
 
33
-如果服务器上还没有安装 systemd 服务,执行初始化:
36
+确保服务器上已有 `/opt/iot-platform/` 目录,并包含 `Dockerfile`、`.env`、`start-container.sh`:
37
+
38
+```bash
39
+# 从本地同步必要文件到服务器
40
+scp deploy/setup-server.sh root@47.104.204.180:/opt/iot-platform/
41
+scp .env root@47.104.204.180:/opt/iot-platform/
42
+scp Dockerfile root@47.104.204.180:/opt/iot-platform/
43
+scp start-container.sh root@47.104.204.180:/opt/iot-platform/
44
+ssh root@47.104.204.180 "chmod +x /opt/iot-platform/start-container.sh"
45
+```
46
+
47
+然后执行首次部署:
34
 
48
 
35
 ```bash
49
 ```bash
36
 cd deploy
50
 cd deploy
37
-scp setup-server.sh root@47.104.204.180:/tmp/
38
-scp iot-platform.service root@47.104.204.180:/tmp/
39
-scp ../.env root@47.104.204.180:/tmp/iot-platform.env
40
-ssh root@47.104.204.180 "chmod +x /tmp/setup-server.sh && /tmp/setup-server.sh"
51
+./deploy.sh --build
41
 ```
52
 ```
42
 
53
 
43
 ### 日常部署
54
 ### 日常部署
53
 1. 本地执行 `mvn clean package`
64
 1. 本地执行 `mvn clean package`
54
 2. 上传 jar 到服务器
65
 2. 上传 jar 到服务器
55
 3. 备份当前版本(带时间戳)
66
 3. 备份当前版本(带时间戳)
56
-4. 停止 systemd 服务
57
-5. 替换 jar
58
-6. 启动服务
67
+4. 停止并删除旧容器
68
+5. 替换 jar 并构建新镜像
69
+6. 启动容器(host 网络模式)
59
 7. 健康检查(`/actuator/health`)
70
 7. 健康检查(`/actuator/health`)
60
 8. 失败则自动回滚到上一个版本
71
 8. 失败则自动回滚到上一个版本
61
 
72
 
104
 ## 服务器管理
115
 ## 服务器管理
105
 
116
 
106
 ```bash
117
 ```bash
107
-# 查看状态
108
-systemctl status iot-platform
118
+# 查看容器状态
119
+podman ps | grep iot-platform
109
 
120
 
110
-# 重启
111
-systemctl restart iot-platform
121
+# 查看实时日志
122
+podman logs -f iot-platform
112
 
123
 
113
-# 停止
114
-systemctl stop iot-platform
124
+# 查看最后 100 行日志
125
+podman logs --tail 100 iot-platform
115
 
126
 
116
-# 查看日志
117
-journalctl -u iot-platform -f
127
+# 查看宿主机上的日志文件(和容器内同步)
128
+tail -f /opt/iot-platform/logs/iot-platform.$(date +%Y-%m-%d).*.log
118
 
129
 
119
-# 查看历史日志
120
-journalctl -u iot-platform --since "1 hour ago"
130
+# 停止容器
131
+podman stop iot-platform
132
+
133
+# 删除容器
134
+podman rm iot-platform
135
+
136
+# 重启容器
137
+podman restart iot-platform
121
 ```
138
 ```
122
 
139
 
123
 ## 健康检查
140
 ## 健康检查
142
 
159
 
143
 ```bash
160
 ```bash
144
 ssh root@47.104.204.180
161
 ssh root@47.104.204.180
145
-systemctl stop iot-platform
162
+
163
+# 停止并删除当前容器
164
+podman stop iot-platform && podman rm iot-platform
165
+
166
+# 恢复旧版本 jar
146
 ls /opt/iot-platform/backup/          # 查看可用备份
167
 ls /opt/iot-platform/backup/          # 查看可用备份
147
 cp /opt/iot-platform/backup/iot-platform-XXXX.jar /opt/iot-platform/iot-platform.jar
168
 cp /opt/iot-platform/backup/iot-platform-XXXX.jar /opt/iot-platform/iot-platform.jar
148
-systemctl start iot-platform
169
+
170
+# 重新构建镜像并启动
171
+cd /opt/iot-platform && podman build -t iot-platform:latest .
172
+podman run -d \
173
+    --name iot-platform \
174
+    --network host \
175
+    --restart unless-stopped \
176
+    -v /opt/iot-platform/logs:/opt/iot-platform/logs \
177
+    localhost/iot-platform:latest
149
 ```
178
 ```
150
 
179
 
151
 ## 配置文件说明
180
 ## 配置文件说明
153
 | 文件 | 说明 |
182
 | 文件 | 说明 |
154
 |------|------|
183
 |------|------|
155
 | `deploy.sh` | 一键部署脚本(本地执行) |
184
 | `deploy.sh` | 一键部署脚本(本地执行) |
156
-| `setup-server.sh` | 服务器初始化脚本(服务器执行) |
185
+| `setup-server.sh` | 服务器初始化脚本 |
157
 | `health-check.sh` | 健康检查脚本 |
186
 | `health-check.sh` | 健康检查脚本 |
158
-| `iot-platform.service` | systemd 服务定义 |
187
+| `Dockerfile` | 容器镜像构建定义 |
188
+| `start-container.sh` | 容器内启动脚本(加载 .env) |
189
+| `iot-platform.service` | systemd 服务定义(已废弃,保留备用) |

Загрузка…
Отмена
Сохранить