chore(trans_hub): 更新子模块提交引用
- 将 trans_hub 子模块从 ec4933005c29aa6f647e7729d5bba8a03a066563 更新到 ce4850724c2a3d9685488f6bfaf3fdd05cf6ae1f
This commit is contained in:
parent
eaf4be7047
commit
5afb699635
|
|
@ -0,0 +1,425 @@
|
|||
# 邮储银行积分商城服务部署步骤
|
||||
|
||||
## 前置条件
|
||||
|
||||
1. Docker Swarm 集群已搭建
|
||||
2. NFS 服务器已配置(172.29.104.45)
|
||||
3. Harbor 镜像仓库可访问
|
||||
4. Goploy 部署平台已配置
|
||||
|
||||
---
|
||||
|
||||
## 一、准备工作
|
||||
|
||||
### 1.1 创建配置文件
|
||||
|
||||
#### 1.1.1 复制配置模板
|
||||
```bash
|
||||
cd /Users/zhouyonggao/Project/post-bank-point-mall
|
||||
cp trans_hub/app/ymt/post_bank_point_mall/service/configs/config.yaml \
|
||||
trans_hub/app/ymt/post_bank_point_mall/service/configs/config-prod.yaml
|
||||
```
|
||||
|
||||
#### 1.1.2 修改生产环境配置
|
||||
编辑 `trans_hub/app/ymt/post_bank_point_mall/service/configs/config-prod.yaml`:
|
||||
|
||||
```yaml
|
||||
env: prod # 改为 prod
|
||||
|
||||
server:
|
||||
http:
|
||||
addr: ":12022"
|
||||
timeout: 30s
|
||||
|
||||
data:
|
||||
db:
|
||||
driver: mysql
|
||||
source: root:密码@tcp(数据库地址:3306)/transfer?charset=utf8mb4&parseTime=true&loc=Local
|
||||
maxIdle: 5
|
||||
maxOpen: 20
|
||||
maxLifetime: 5s
|
||||
isDebug: false # 生产环境关闭 debug
|
||||
|
||||
redis:
|
||||
addr: Redis 地址:6379
|
||||
password: Redis 密码
|
||||
readTimeout: 3s
|
||||
writeTimeout: 3s
|
||||
poolSize: 5
|
||||
minIdleConns: 2
|
||||
connMaxIdleTime: 30s
|
||||
db: 4
|
||||
|
||||
config:
|
||||
# 根据实际业务修改配置
|
||||
task:
|
||||
interval: 5s
|
||||
batchSize: 50
|
||||
concurrency: 5
|
||||
|
||||
psbc:
|
||||
domain: "https://正式环境域名"
|
||||
fileDomain: "https://文件服务域名"
|
||||
merchantId: "正式商户 ID"
|
||||
# ... 其他配置
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、服务器端操作(只需在 Docker Swarm 管理节点执行一次)
|
||||
|
||||
> 💡 **提示**:管理节点是运行 `docker stack deploy` 命令的节点,可以通过 `docker node ls` 查看节点角色,MANAGER STATUS 为 `Leader` 或 `Reachable` 的即为管理节点。
|
||||
|
||||
### 2.1 创建 NFS 配置目录
|
||||
|
||||
```bash
|
||||
# SSH 登录到 Swarm 管理节点(Leader 节点)
|
||||
ssh root@manager-node # 替换为你的管理节点 IP
|
||||
|
||||
# 验证是否为管理节点
|
||||
docker node ls # MANAGER STATUS 列显示 Leader 或 Reachable
|
||||
|
||||
# 创建 NFS 目录
|
||||
mkdir -p /data/nfs/trans-hub/post_bank_point_mall/config
|
||||
|
||||
# 设置权限
|
||||
chmod 755 /data/nfs/trans-hub/post_bank_point_mall/config
|
||||
```
|
||||
|
||||
### 2.2 上传配置文件到 NFS 服务器
|
||||
|
||||
> 💡 **说明**:NFS 服务器可以是独立服务器,也可以是 Swarm 集群中的某个节点。配置文件只需上传一次,所有节点通过 NFS 共享访问。
|
||||
|
||||
```bash
|
||||
# 从本地上传配置文件到 NFS 服务器
|
||||
cd /Users/zhouyonggao/Project/post-bank-point-mall
|
||||
|
||||
# 如果 NFS 服务器是独立服务器(172.29.104.45)
|
||||
scp trans_hub/app/ymt/post_bank_point_mall/service/configs/config-prod.yaml \
|
||||
root@172.29.104.45:/data/nfs/trans-hub/post_bank_point_mall/config/config.yaml
|
||||
|
||||
# 验证文件是否存在
|
||||
ssh root@172.29.104.45 "cat /data/nfs/trans-hub/post_bank_point_mall/config/config.yaml"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、Goploy 部署配置
|
||||
|
||||
### 3.1 创建项目
|
||||
|
||||
登录 Goploy,点击"新建项目"
|
||||
|
||||
### 3.2 基本配置
|
||||
|
||||
| 配置项 | 值 |
|
||||
|--------|-----|
|
||||
| 名称 | `邮储银行积分商城` |
|
||||
| 仓库地址 | `ssh://git@gitea.cdlsxd.cn:222/transfer_project/trans_hub.git` |
|
||||
| 部署路径 | `/root/wwwroot/servers/trans_hub_post_bank_point_mall` |
|
||||
| 环境 | `测试环境` 或 `生产环境` |
|
||||
| 分支 | `post_bank_point_mall` |
|
||||
| 传输方式 | `sftp` |
|
||||
| 传输选项 | `-rtv --exclude-regexexp='*' --include-regexexp='^.sh config/' --include=.env` |
|
||||
| 服务器 | 选择目标服务器 |
|
||||
| 用户 | 选择部署用户 |
|
||||
|
||||
### 3.3 自定义变量
|
||||
|
||||
添加以下变量:
|
||||
|
||||
| 变量名 | 类型 | 值 |
|
||||
|--------|------|-----|
|
||||
| `CONTAINER_NAME` | string | `post_bank_point_mall` |
|
||||
|
||||
### 3.4 拉取后运行脚本(构建镜像)
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
export VERSION=$(git describe --tags --always)
|
||||
echo "CONTAINER_NAME=${CONTAINER_NAME}" >> .env
|
||||
echo "VERSION=${VERSION}" >> .env
|
||||
source .env
|
||||
|
||||
# 构建镜像
|
||||
docker build --build-arg CODEUP_USER="你的账号" \
|
||||
--build-arg CODEUP_PASS="你的密码" \
|
||||
--build-arg VERSION="${VERSION}" \
|
||||
--build-arg SERVICE_NAME="${CONTAINER_NAME}" \
|
||||
-t ${CONTAINER_NAME}:${VERSION} \
|
||||
-f trans_hub/app/ymt/post_bank_point_mall/service/Dockerfile \
|
||||
trans_hub/app/ymt/post_bank_point_mall/service
|
||||
|
||||
# 推送到 Harbor
|
||||
docker tag ${CONTAINER_NAME}:${VERSION} harbor.dev.cdlsxd.cn/common/${CONTAINER_NAME}:${VERSION}
|
||||
docker login harbor.dev.cdlsxd.cn -u admin -p Harbor8@121212
|
||||
docker push harbor.dev.cdlsxd.cn/common/${CONTAINER_NAME}:${VERSION}
|
||||
|
||||
echo "镜像构建完成:${CONTAINER_NAME}:${VERSION}"
|
||||
```
|
||||
|
||||
### 3.5 部署后运行脚本(更新服务)
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
source ${PROJECT_PATH}/.env
|
||||
echo "${UP_VERSION} ${CONTAINER_NAME} ${VERSION}"
|
||||
|
||||
# 登录 Harbor
|
||||
docker login harbor.dev.cdlsxd.cn -u admin -p Harbor8@121212
|
||||
|
||||
# 拉取最新镜像
|
||||
docker pull harbor.dev.cdlsxd.cn/common/${CONTAINER_NAME}:${VERSION}
|
||||
|
||||
# 更新服务
|
||||
docker service update \
|
||||
--image harbor.dev.cdlsxd.cn/common/${CONTAINER_NAME}:${VERSION} \
|
||||
trans-hub_${CONTAINER_NAME}
|
||||
|
||||
echo "服务更新完成!"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、首次部署 Stack
|
||||
|
||||
### 4.1 上传部署脚本到 Docker Swarm 管理节点
|
||||
|
||||
> ⚠️ **重要**:必须上传到管理节点(Manager Node),因为 `docker stack deploy` 命令只能在管理节点执行。
|
||||
|
||||
```bash
|
||||
# 1. 找到管理节点(在你的机器上执行)
|
||||
ssh root@你的管理节点 IP
|
||||
|
||||
# 2. 验证节点角色
|
||||
docker node ls
|
||||
# 输出示例:
|
||||
# ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
|
||||
# abc123 manager Ready Active Leader 20.10.x ← 这是管理节点
|
||||
# def456 worker1 Ready Active 20.10.x ← 这是工作节点
|
||||
|
||||
# 3. 上传文件到管理节点(在你的机器上执行)
|
||||
cd /Users/zhouyonggao/Project/post-bank-point-mall/devops/stack/business/post-bank-point-mall
|
||||
scp deploy.sh root@你的管理节点 IP:/root/
|
||||
scp post-bank-point-mall-stack.yml root@你的管理节点 IP:/root/
|
||||
```
|
||||
|
||||
### 4.2 在管理节点执行部署
|
||||
|
||||
```bash
|
||||
# SSH 登录到管理节点
|
||||
ssh root@你的管理节点 IP
|
||||
|
||||
# 验证当前节点是管理节点
|
||||
docker node ls # 确认 MANAGER STATUS 列有值
|
||||
|
||||
# 进入部署目录
|
||||
cd /root
|
||||
|
||||
# 执行部署脚本
|
||||
bash deploy.sh
|
||||
```
|
||||
|
||||
### 4.3 验证部署
|
||||
|
||||
```bash
|
||||
# 查看服务状态
|
||||
docker service ls
|
||||
|
||||
# 查看服务详情
|
||||
docker service ps trans-hub_post_bank_point_mall
|
||||
|
||||
# 查看服务日志
|
||||
docker service logs trans-hub_post_bank_point_mall -f
|
||||
|
||||
# 测试服务
|
||||
curl -I http://localhost:12022/health
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、配置更新
|
||||
|
||||
### 5.1 更新配置文件
|
||||
|
||||
```bash
|
||||
# 修改本地配置
|
||||
vim trans_hub/app/ymt/post_bank_point_mall/service/configs/config-prod.yaml
|
||||
|
||||
# 重新上传到 NFS
|
||||
scp trans_hub/app/ymt/post_bank_point_mall/service/configs/config-prod.yaml \
|
||||
root@172.29.104.45:/data/nfs/trans-hub/post_bank_point_mall/config/config.yaml
|
||||
```
|
||||
|
||||
### 5.2 重启服务(可选)
|
||||
|
||||
某些配置需要重启才能生效:
|
||||
|
||||
```bash
|
||||
docker service update --force trans-hub_post_bank_point_mall
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、注意事项
|
||||
|
||||
### 6.1 配置安全
|
||||
|
||||
⚠️ **敏感信息处理**:
|
||||
- 数据库密码、Redis 密码等敏感信息不要提交到 Git
|
||||
- 生产环境使用 Docker Secret 管理敏感信息
|
||||
- 配置文件设置合适的权限:`chmod 600 config.yaml`
|
||||
|
||||
### 6.2 端口冲突
|
||||
|
||||
⚠️ **检查端口占用**:
|
||||
```bash
|
||||
# 部署前检查端口是否被占用
|
||||
netstat -tlnp | grep 12022
|
||||
|
||||
# 如果端口被占用,修改配置文件中的端口
|
||||
```
|
||||
|
||||
### 6.3 数据库连接
|
||||
|
||||
⚠️ **确保数据库可访问**:
|
||||
- 测试数据库连接:`telnet 数据库 IP 3306`
|
||||
- 确保防火墙允许 Docker 网络访问数据库
|
||||
- 检查数据库用户权限
|
||||
|
||||
### 6.4 Redis 连接
|
||||
|
||||
⚠️ **确保 Redis 可访问**:
|
||||
- 测试 Redis 连接:`redis-cli -h Redis 地址 -p 6379`
|
||||
- 检查 Redis 密码是否正确
|
||||
- 确认 Redis 最大连接数足够
|
||||
|
||||
### 6.5 日志查看
|
||||
|
||||
```bash
|
||||
# 查看实时日志
|
||||
docker service logs trans-hub_post_bank_point_mall -f
|
||||
|
||||
# 查看最近 100 行日志
|
||||
docker service logs trans-hub_post_bank_point_mall --tail 100
|
||||
|
||||
# 查看错误日志
|
||||
docker service logs trans-hub_post_bank_point_mall 2>&1 | grep ERROR
|
||||
```
|
||||
|
||||
### 6.6 服务回滚
|
||||
|
||||
如果部署失败,回滚到上一个版本:
|
||||
|
||||
```bash
|
||||
docker service rollback trans-hub_post_bank_point_mall
|
||||
```
|
||||
|
||||
### 6.7 扩容/缩容
|
||||
|
||||
```bash
|
||||
# 扩容到 3 个副本
|
||||
docker service update --replicas 3 trans-hub_post_bank_point_mall
|
||||
|
||||
# 缩容到 1 个副本
|
||||
docker service update --replicas 1 trans-hub_post_bank_point_mall
|
||||
```
|
||||
|
||||
### 6.8 健康检查
|
||||
|
||||
确保服务健康检查正常:
|
||||
|
||||
```bash
|
||||
# 查看健康检查状态
|
||||
docker service inspect trans-hub_post_bank_point_mall --format='{{.Spec.Healthcheck}}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、常见问题
|
||||
|
||||
### Q1: 服务启动失败
|
||||
```bash
|
||||
# 查看日志
|
||||
docker service logs trans-hub_post_bank_point_mall --tail 200
|
||||
|
||||
# 常见原因:
|
||||
# - 配置文件路径错误
|
||||
# - 数据库连接失败
|
||||
# - 端口被占用
|
||||
```
|
||||
|
||||
### Q2: NFS 挂载失败
|
||||
```bash
|
||||
# 检查 NFS 服务器
|
||||
showmount -e 172.29.104.45
|
||||
|
||||
# 手动测试挂载
|
||||
mount -t nfs 172.29.104.45:/data/nfs/trans-hub/post_bank_point_mall/config /mnt
|
||||
```
|
||||
|
||||
### Q3: 镜像拉取失败
|
||||
```bash
|
||||
# 检查 Harbor 连接
|
||||
docker login harbor.dev.cdlsxd.cn
|
||||
|
||||
# 检查镜像是否存在
|
||||
docker images | grep post_bank_point_mall
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 八、监控和告警
|
||||
|
||||
### 8.1 服务监控
|
||||
|
||||
```bash
|
||||
# 查看服务状态
|
||||
watch -n 2 'docker service ls | grep post_bank_point_mall'
|
||||
|
||||
# 查看资源使用
|
||||
docker stats $(docker ps -q | head -5)
|
||||
```
|
||||
|
||||
### 8.2 日志收集
|
||||
|
||||
建议配置日志收集系统(如 ELK、Loki):
|
||||
- 实时查看日志
|
||||
- 日志搜索和过滤
|
||||
- 告警通知
|
||||
|
||||
---
|
||||
|
||||
## 九、回滚流程
|
||||
|
||||
### 9.1 快速回滚
|
||||
|
||||
```bash
|
||||
# 回滚到上一个版本
|
||||
docker service rollback trans-hub_post_bank_point_mall
|
||||
|
||||
# 或者指定版本
|
||||
docker service update \
|
||||
--image harbor.dev.cdlsxd.cn/common/post_bank_point_mall:v1.0.0 \
|
||||
trans-hub_post_bank_point_mall
|
||||
```
|
||||
|
||||
### 9.2 配置回滚
|
||||
|
||||
```bash
|
||||
# 恢复配置文件
|
||||
scp configs/config-backup.yaml \
|
||||
root@172.29.104.45:/data/nfs/trans-hub/post_bank_point_mall/config/config.yaml
|
||||
|
||||
# 重启服务
|
||||
docker service update --force trans-hub_post_bank_point_mall
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 十、联系支持
|
||||
|
||||
遇到问题时:
|
||||
1. 查看日志:`docker service logs trans-hub_post_bank_point_mall`
|
||||
2. 检查配置:确认配置文件正确
|
||||
3. 联系运维团队
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 8016927b9ddb29b2efab3a8ba1d6fc419236417a
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit ec4933005c29aa6f647e7729d5bba8a03a066563
|
||||
Subproject commit ce4850724c2a3d9685488f6bfaf3fdd05cf6ae1f
|
||||
Loading…
Reference in New Issue