233 lines
4.5 KiB
Markdown
233 lines
4.5 KiB
Markdown
# 碳信网 - 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 .
|
||
```
|
||
|
||
构建arm64架构
|
||
|
||
构建前端
|
||
|
||
```bash
|
||
docker buildx build --platform linux/arm64 -t txw-web:1.0.0 -f devops/web/Dockerfile . --load
|
||
```
|
||
|
||
构建后端
|
||
|
||
```bash
|
||
docker buildx build --platform linux/arm64 -t txw-all:1.0.0 -f devops/Dockerfile . --load
|
||
```
|
||
|
||
### 更新镜像
|
||
|
||
代码变更后,重新构建并启动:
|
||
|
||
```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
|
||
```
|