# 碳信网 - 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 ```