txw/devops/README.md
2026-05-03 15:01:18 +08:00

220 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 碳信网 - Docker 部署指南
## 概述
本目录包含碳信网项目的 Docker 编排配置,分为两部分:
- **基础设施服务**nacos、redis、minio
- **业务服务**gateway、sso、mhzc、yygl
---
## 构建镜像
### 前置要求
- Docker 20.10+
- Maven 3.6+
- Node.js 16+
- npm
### 构建命令
```bash
cd devops
# 构建所有镜像(前后端)
bash build.sh [VERSION]
# 示例:构建 1.0.0-BETA 版本
bash build.sh 1.0.0-BETA
```
构建脚本会依次完成:
1. 构建前端 mhzc-web
2. 构建前端 yygl-web
3. 构建后端统一镜像 `txw-all`
4. 构建前端镜像 `txw-web`
仅构建后端
```
docker build -t txw-all:1.0.0-BETA -t txw-all:latest -f devops/Dockerfile .
```
仅构建前端
```
docker build -t txw-web:1.0.0-BETA -t txw-web:latest -f devops/web/Dockerfile .
```
### 更新镜像
代码变更后,重新构建并启动:
```bash
# 1. 重新构建镜像
bash build.sh 1.0.0-BETA
# 2. 重启业务服务(使用新镜像)
docker-compose -f docker-compose.svc.yml up -d --build
```
### 查看镜像
```bash
docker images | grep txw-
```
---
## 目录结构
```
devops/
├── docker-compose.infra.yml # 基础设施编排
├── docker-compose.svc.yml # 业务服务编排
├── nacos/ # Nacos 数据持久化目录
│ ├── data/
│ └── logs/
└── README.md
```
---
## 快速开始
### 1. 准备docker网络首次必须
```
docker network create txw-network
```
### 2. 启动基础设施(首次必须)
```bash
cd devops
docker-compose -f docker-compose.infra.yml up -d
```
### 3. 启动业务服务
```bash
docker-compose -f docker-compose.svc.yml up -d
```
### 4. 查看服务状态
```bash
docker-compose -f docker-compose.infra.yml ps
docker-compose -f docker-compose.svc.yml ps
```
---
## 服务访问
| 服务 | 地址 | 说明 |
| ------- | --------------------------- | ----------------------------- |
| Nacos | http://localhost:8848/nacos | 默认账号: nacos / nacos |
| Redis | localhost:6379 | 密码: redis_password |
| MinIO | http://localhost:9000 | 控制台: http://localhost:9001 |
| Gateway | http://localhost:9300 | API 网关 |
| SSO | http://localhost:9301 | 单点登录 |
| MHZC | http://localhost:9302 | 碳资产服务 |
| YYGL | http://localhost:20010 | 运营管理服务 |
---
## 常用操作
### 查看日志
```bash
# 基础设施日志
docker-compose -f docker-compose.infra.yml logs -f
# 业务服务日志
docker-compose -f docker-compose.svc.yml logs -f
# 单个服务日志
docker-compose -f docker-compose.infra.yml logs -f nacos
docker-compose -f docker-compose.svc.yml logs -f gateway
```
### 重启服务
```bash
# 重启单个服务
docker-compose -f docker-compose.svc.yml restart gateway
# 重启所有业务服务
docker-compose -f docker-compose.svc.yml restart
```
### 停止服务
```bash
# 停止业务服务
docker-compose -f docker-compose.svc.yml down
# 停止所有服务(包括基础设施)
docker-compose -f docker-compose.infra.yml down
docker-compose -f docker-compose.svc.yml down
```
### 重建服务
```bash
# 重新构建并启动(代码更新后使用)
docker-compose -f docker-compose.svc.yml up -d --build
```
---
## 数据持久化
| 服务 | 宿主机路径 |
| ---------- | ------------------------- |
| Nacos data | ./nacos/data |
| Nacos logs | ./nacos/logs |
| Redis data | Docker volume: redis-data |
| MinIO data | Docker volume: minio-data |
---
## 网络说明
所有服务通过 `txw-network` 桥接网络互通:
- 基础设施创建网络并定义 volumes
- 业务服务通过 `external: true` 加入网络
**注意**:启动业务服务前,必须先启动基础设施,确保网络已创建。
---
## 开发调试
### 进入容器
```bash
docker exec -it txw-nacos bash
docker exec -it txw-gateway bash
```
### 检查网络
```bash
docker network inspect devops_txw-network
```
### 检查服务健康状态
```bash
curl http://localhost:8848/nacos/v1/ns/operator/metrics
docker exec txw-redis redis-cli -a redis_password ping
```