Browse Source

save

master
leiyun 1 week ago
parent
commit
03d1a1a03a
2 changed files with 120 additions and 23 deletions
  1. +110
    -13
      isolated/README.md
  2. +10
    -10
      isolated/update.MD

+ 110
- 13
isolated/README.md View File

@@ -86,8 +86,10 @@ URL: https://...
先将 `deploy-from-url.sh` 放到甲方服务器。之后执行: 先将 `deploy-from-url.sh` 放到甲方服务器。之后执行:


```bash ```bash
cd /home/admin-x99/emp

DEPLOY_ENV=emp-uat \ DEPLOY_ENV=emp-uat \
DEPLOY_HOME=/home/admin-x99/emp-uat \
DEPLOY_HOME=/home/admin-x99/emp/emp-uat \
PACKAGE_SHA256=<打包输出的SHA256> \ PACKAGE_SHA256=<打包输出的SHA256> \
bash deploy-from-url.sh "<打包输出的URL>" bash deploy-from-url.sh "<打包输出的URL>"
``` ```
@@ -95,13 +97,13 @@ bash deploy-from-url.sh "<打包输出的URL>"
脚本会将包下载到: 脚本会将包下载到:


```text ```text
/home/admin-x99/emp-uat/packages/<时间戳>/
/home/admin-x99/emp/emp-uat/packages/<时间戳>/
``` ```


然后把运行文件复制到: 然后把运行文件复制到:


```text ```text
/home/admin-x99/emp-uat/runtime/
/home/admin-x99/emp/emp-uat/runtime/
``` ```


并执行 `install.sh`。 并执行 `install.sh`。
@@ -109,7 +111,7 @@ bash deploy-from-url.sh "<打包输出的URL>"
如果目标目录下还没有 `.env`,`install.sh` 会先从 `.env.example` 生成 `.env` 并停止。修改密码、`PUBLIC_HOST`、端口和第三方配置后,再执行: 如果目标目录下还没有 `.env`,`install.sh` 会先从 `.env.example` 生成 `.env` 并停止。修改密码、`PUBLIC_HOST`、端口和第三方配置后,再执行:


```bash ```bash
cd /home/admin-x99/emp-uat/runtime
cd /home/admin-x99/emp/emp-uat/runtime
DEPLOY_ENV=emp-uat bash install.sh DEPLOY_ENV=emp-uat bash install.sh
``` ```


@@ -121,8 +123,8 @@ DEPLOY_ENV=emp-uat bash install.sh


| 环境 | 部署目录 | Compose 项目名 | 前端 | WS | MySQL | 本地 Kafka 可选 | TDengine REST | | 环境 | 部署目录 | Compose 项目名 | 前端 | WS | MySQL | 本地 Kafka 可选 | TDengine REST |
| --- | --- | --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- | --- | --- |
| emp-test | `/home/admin-x99/emp-test` | `emp-test` | 4750 | 4751 | 4752 | 4753 | 4754 |
| emp-uat | `/home/admin-x99/emp-uat` | `emp-uat` | 4755 | 4756 | 4757 | 4758 | 4759 |
| emp-test | `/home/admin-x99/emp/emp-test` | `emp-test` | 4750 | 4751 | 4752 | 4753 | 4754 |
| emp-uat | `/home/admin-x99/emp/emp-uat` | `emp-uat` | 4755 | 4756 | 4757 | 4758 | 4759 |


`4760` 预留备用。当前公共 compose 模板不对外暴露 Gateway、PDF、Nacos、Redis、TDengine RPC;如需额外暴露,再使用 `4760` 或向甲方申请新端口。 `4760` 预留备用。当前公共 compose 模板不对外暴露 Gateway、PDF、Nacos、Redis、TDengine RPC;如需额外暴露,再使用 `4760` 或向甲方申请新端口。


@@ -141,7 +143,7 @@ Kafka 当前配置:


```bash ```bash
DEPLOY_ENV=emp-test \ DEPLOY_ENV=emp-test \
DEPLOY_HOME=/home/admin-x99/emp-test \
DEPLOY_HOME=/home/admin-x99/emp/emp-test \
PACKAGE_SHA256=<打包输出的SHA256> \ PACKAGE_SHA256=<打包输出的SHA256> \
bash deploy-from-url.sh "<emp-test包URL>" bash deploy-from-url.sh "<emp-test包URL>"
``` ```
@@ -150,17 +152,112 @@ bash deploy-from-url.sh "<emp-test包URL>"


```bash ```bash
DEPLOY_ENV=emp-uat \ DEPLOY_ENV=emp-uat \
DEPLOY_HOME=/home/admin-x99/emp-uat \
DEPLOY_HOME=/home/admin-x99/emp/emp-uat \
PACKAGE_SHA256=<打包输出的SHA256> \ PACKAGE_SHA256=<打包输出的SHA256> \
bash deploy-from-url.sh "<emp-uat包URL>" bash deploy-from-url.sh "<emp-uat包URL>"
``` ```


Docker compose 会按项目名隔离容器、网络和数据卷,所以只要 `PROJECT_NAME` 不同,`emp-test` 和 `emp-uat` 的数据卷不会互相覆盖。 Docker compose 会按项目名隔离容器、网络和数据卷,所以只要 `PROJECT_NAME` 不同,`emp-test` 和 `emp-uat` 的数据卷不会互相覆盖。


## TDengine 首次初始化

首次全量部署后,如果 MySQL 数据由外部迁移,只需要在 TDengine 中创建业务库和车辆数据超级表 `s_vehicle_data`。`emp-test` 和 `emp-uat` 是两套独立容器和数据卷,必须分别执行一次。

下面以 `emp-uat` 为例,`CREATE STABLE` 使用 here-doc 方式执行,这是现场验证成功的方式,避免超长单行 SQL 粘贴被截断:

```bash
DEPLOY_ENV=emp-uat
cd /home/admin-x99/emp/$DEPLOY_ENV/runtime

dc() { docker compose --env-file .env -f docker-compose.yml -p "$DEPLOY_ENV" "$@"; }

dc exec -T tdengine taos -s "CREATE DATABASE IF NOT EXISTS emp;"

dc exec -T tdengine taos -d emp <<'SQL'
CREATE STABLE s_vehicle_data (
ts TIMESTAMP,
endurance_mile FLOAT,
vehicle_status INT,
charge_status INT,
operation_mode INT,
speed INT,
total_mile INT,
vol INT,
cur INT,
soc INT,
dc_status INT,
gear INT,
insulation INT,
pedal_mile INT,
break_status INT,
valid BOOL,
longitude INT,
latitude INT,
charge_energy_num INT,
charge_energy_no INT,
charge_vol INT,
charge_cur INT,
bat_num INT,
bat_start INT,
cur_num INT,
bats NCHAR(4096),
charge_energy_temp_num INT,
charge_energy_temp_no INT,
temp_num INT,
temps NCHAR(2048),
version INT,
avg_cur_num INT,
avg_cur INT,
model_code NCHAR(64),
byte_num INT,
soh INT,
ah_num FLOAT,
energy_num FLOAT,
sn NCHAR(64),
can_protocol_detail NCHAR(256),
adc_status INT,
can_vol FLOAT,
adc_vol FLOAT,
adc_vol_sample INT,
battery_code NCHAR(64),
data_time_text NCHAR(32)
) TAGS (
vin_no NCHAR(32)
);

SHOW STABLES;
DESCRIBE s_vehicle_data;
SQL
```

成功标志:

```text
Create OK
SHOW STABLES 输出包含 s_vehicle_data
DESCRIBE s_vehicle_data 输出 47 行字段
```

`taos` 在 `docker compose exec -T` 的非交互终端里可能输出 `Fail to reset the terminal properties` 或 `Fail to set terminal properties`,只要 `Create OK`、`SHOW STABLES` 和 `DESCRIBE` 正常,可以忽略。

建完超级表后重启数据服务:

```bash
dc restart emp-data
```

初始化 `emp-test` 时只需要把环境改成:

```bash
DEPLOY_ENV=emp-test
cd /home/admin-x99/emp/$DEPLOY_ENV/runtime
dc() { docker compose --env-file .env -f docker-compose.yml -p "$DEPLOY_ENV" "$@"; }
```

## 甲方服务器常用命令 ## 甲方服务器常用命令


```bash ```bash
cd /home/admin-x99/emp-uat/runtime
cd /home/admin-x99/emp/emp-uat/runtime


docker compose --env-file .env -f docker-compose.yml -p emp-uat ps docker compose --env-file .env -f docker-compose.yml -p emp-uat ps
docker compose --env-file .env -f docker-compose.yml -p emp-uat logs -f emp-gateway docker compose --env-file .env -f docker-compose.yml -p emp-uat logs -f emp-gateway
@@ -170,7 +267,7 @@ docker compose --env-file .env -f docker-compose.yml -p emp-uat down
查看 test 时把目录和项目名改为 `emp-test`: 查看 test 时把目录和项目名改为 `emp-test`:


```bash ```bash
cd /home/admin-x99/emp-test/runtime
cd /home/admin-x99/emp/emp-test/runtime
docker compose --env-file .env -f docker-compose.yml -p emp-test ps docker compose --env-file .env -f docker-compose.yml -p emp-test ps
``` ```


@@ -179,8 +276,8 @@ docker compose --env-file .env -f docker-compose.yml -p emp-test ps
如果 COS 不可用,仍然可以通过其他方式把 `dist/` 下的包传到甲方服务器。全量包手工部署示例: 如果 COS 不可用,仍然可以通过其他方式把 `dist/` 下的包传到甲方服务器。全量包手工部署示例:


```bash ```bash
mkdir -p /home/admin-x99/emp-uat/runtime
tar -xzf emp-uat-runtime-*.tar.gz -C /home/admin-x99/emp-uat/runtime --strip-components=1
cd /home/admin-x99/emp-uat/runtime
mkdir -p /home/admin-x99/emp/emp-uat/runtime
tar -xzf emp-uat-runtime-*.tar.gz -C /home/admin-x99/emp/emp-uat/runtime --strip-components=1
cd /home/admin-x99/emp/emp-uat/runtime
DEPLOY_ENV=emp-uat bash install.sh DEPLOY_ENV=emp-uat bash install.sh
``` ```

+ 10
- 10
isolated/update.MD View File

@@ -73,15 +73,15 @@ EMP_ROOT=/home/git \
先确认目标环境已完成全量部署,并存在: 先确认目标环境已完成全量部署,并存在:


```text ```text
/home/admin-x99/emp-uat/runtime/.env
/home/admin-x99/emp-uat/runtime/docker-compose.yml
/home/admin-x99/emp/emp-uat/runtime/.env
/home/admin-x99/emp/emp-uat/runtime/docker-compose.yml
``` ```


执行: 执行:


```bash ```bash
DEPLOY_ENV=emp-uat \ DEPLOY_ENV=emp-uat \
DEPLOY_HOME=/home/admin-x99/emp-uat \
DEPLOY_HOME=/home/admin-x99/emp/emp-uat \
PACKAGE_SHA256=<打包输出的SHA256> \ PACKAGE_SHA256=<打包输出的SHA256> \
bash deploy-from-url.sh "<打包输出的URL>" bash deploy-from-url.sh "<打包输出的URL>"
``` ```
@@ -91,13 +91,13 @@ bash deploy-from-url.sh "<打包输出的URL>"
```bash ```bash
# 更新 test # 更新 test
DEPLOY_ENV=emp-test \ DEPLOY_ENV=emp-test \
DEPLOY_HOME=/home/admin-x99/emp-test \
DEPLOY_HOME=/home/admin-x99/emp/emp-test \
PACKAGE_SHA256=<打包输出的SHA256> \ PACKAGE_SHA256=<打包输出的SHA256> \
bash deploy-from-url.sh "<emp-test增量包URL>" bash deploy-from-url.sh "<emp-test增量包URL>"


# 更新 uat # 更新 uat
DEPLOY_ENV=emp-uat \ DEPLOY_ENV=emp-uat \
DEPLOY_HOME=/home/admin-x99/emp-uat \
DEPLOY_HOME=/home/admin-x99/emp/emp-uat \
PACKAGE_SHA256=<打包输出的SHA256> \ PACKAGE_SHA256=<打包输出的SHA256> \
bash deploy-from-url.sh "<emp-uat增量包URL>" bash deploy-from-url.sh "<emp-uat增量包URL>"
``` ```
@@ -118,9 +118,9 @@ $DEPLOY_HOME/packages/<时间戳>/
cd /tmp/emp-update cd /tmp/emp-update


DEPLOY_ENV=emp-uat \ DEPLOY_ENV=emp-uat \
DEPLOY_HOME=/home/admin-x99/emp-uat \
ENV_FILE=/home/admin-x99/emp-uat/runtime/.env \
COMPOSE_FILE=/home/admin-x99/emp-uat/runtime/docker-compose.yml \
DEPLOY_HOME=/home/admin-x99/emp/emp-uat \
ENV_FILE=/home/admin-x99/emp/emp-uat/runtime/.env \
COMPOSE_FILE=/home/admin-x99/emp/emp-uat/runtime/docker-compose.yml \
bash apply-update.sh emp-admin emp-monitor bash apply-update.sh emp-admin emp-monitor
``` ```


@@ -131,7 +131,7 @@ bash apply-update.sh emp-admin emp-monitor
查看 UAT 服务状态: 查看 UAT 服务状态:


```bash ```bash
cd /home/admin-x99/emp-uat/runtime
cd /home/admin-x99/emp/emp-uat/runtime
docker compose --env-file .env -f docker-compose.yml -p emp-uat ps emp-admin emp-monitor docker compose --env-file .env -f docker-compose.yml -p emp-uat ps emp-admin emp-monitor
``` ```


@@ -144,7 +144,7 @@ docker compose --env-file .env -f docker-compose.yml -p emp-uat logs --tail=100
查看 test 时把目录和项目名改为 `emp-test`: 查看 test 时把目录和项目名改为 `emp-test`:


```bash ```bash
cd /home/admin-x99/emp-test/runtime
cd /home/admin-x99/emp/emp-test/runtime
docker compose --env-file .env -f docker-compose.yml -p emp-test ps emp-admin emp-monitor docker compose --env-file .env -f docker-compose.yml -p emp-test ps emp-admin emp-monitor
``` ```




Loading…
Cancel
Save