186 lines
4.9 KiB
YAML
186 lines
4.9 KiB
YAML
version: '3.8'
|
||
|
||
# ============================================================
|
||
# 碳信网 - 服务编排
|
||
# 使用方式:
|
||
# 单服务启动: docker-compose up -d gateway
|
||
# 启动所有: docker-compose up -d
|
||
# ============================================================
|
||
|
||
services:
|
||
|
||
# ============================================
|
||
# 基础设施服务
|
||
# ============================================
|
||
|
||
nacos:
|
||
image: nacos/nacos-server:v3.0.2 # Nacos 官方镜像,指定稳定版本(避免latest)
|
||
container_name: txw-nacos # 容器名称,方便管理
|
||
ports:
|
||
- "8848:8848" # Nacos 核心端口(Web控制台+API)
|
||
- "9848:9848" # Nacos 2.x 新增的客户端通信端口
|
||
- "9849:9849" # Nacos 2.x 新增的客户端grpc端口
|
||
environment:
|
||
# 核心配置:单机模式启动(必选)
|
||
- MODE=standalone
|
||
# 首选主机模式(单机环境用hostname即可)
|
||
- PREFER_HOST_MODE=hostname
|
||
# JVM 内存配置(避免默认内存过大/过小)
|
||
- JVM_XMS=512m
|
||
- JVM_XMX=512m
|
||
- JVM_XMN=256m
|
||
# 开启鉴权
|
||
- NACOS_AUTH_ENABLE=true
|
||
# 鉴权 Token 密钥(Base64 编码,至少 32 字节)
|
||
- NACOS_AUTH_TOKEN=TmFjb3NBdXRoVG9rZW5TZWNyZXRLZXkyMDI0Rm9yRGV2RW52aXJvbm1lbnQ=
|
||
# 服务身份验证密钥
|
||
- NACOS_CORE_AUTH_SERVER_IDENTITY_KEY=nacos
|
||
- NACOS_CORE_AUTH_SERVER_IDENTITY_VALUE=nacos2024
|
||
volumes:
|
||
# 数据持久化:挂载Nacos的数据目录到宿主机
|
||
- ./nacos/data:/home/nacos/data
|
||
# 日志持久化:挂载日志目录到宿主机
|
||
- ./nacos/logs:/home/nacos/logs
|
||
# 配置文件挂载(如需自定义配置,可先从容器拷贝再挂载)
|
||
# - ./nacos/conf:/home/nacos/conf
|
||
healthcheck:
|
||
test: ["CMD", "curl", "-f", "http://localhost:8848/nacos"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
networks:
|
||
- txw-network
|
||
|
||
redis:
|
||
image: redis:latest
|
||
container_name: txw-redis
|
||
ports:
|
||
- "6379:6379"
|
||
command: redis-server --requirepass redis_password
|
||
volumes:
|
||
- redis-data:/data
|
||
healthcheck:
|
||
test: ["CMD", "redis-cli", "ping"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
networks:
|
||
- txw-network
|
||
|
||
minio:
|
||
image: minio/minio:latest
|
||
container_name: txw-minio
|
||
ports:
|
||
- "9000:9000"
|
||
- "9001:9001"
|
||
environment:
|
||
- MINIO_ROOT_USER=minioadmin
|
||
- MINIO_ROOT_PASSWORD=minioadmin123
|
||
command: server /data --console-address ":9001"
|
||
volumes:
|
||
- minio-data:/data
|
||
healthcheck:
|
||
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
networks:
|
||
- txw-network
|
||
|
||
# ============================================
|
||
# 业务服务(统一后端镜像)
|
||
# ============================================
|
||
|
||
gateway:
|
||
image: txw-all:1.0.0-BETA
|
||
container_name: txw-gateway
|
||
environment:
|
||
- SERVICE_NAME=gateway
|
||
- SPRING_PROFILES_ACTIVE=prod
|
||
- NACOS_SERVER_ADDR=nacos:8848
|
||
ports:
|
||
- "9300:9300"
|
||
depends_on:
|
||
nacos:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
networks:
|
||
- txw-network
|
||
|
||
sso:
|
||
image: txw-all:1.0.0-BETA
|
||
container_name: txw-sso
|
||
environment:
|
||
- SERVICE_NAME=sso
|
||
- SPRING_PROFILES_ACTIVE=prod
|
||
- NACOS_SERVER_ADDR=nacos:8848
|
||
- SPRING_REDIS_HOST=redis
|
||
- SPRING_REDIS_PORT=6379
|
||
- SPRING_REDIS_PASSWORD=redis_password
|
||
ports:
|
||
- "9301:9301"
|
||
depends_on:
|
||
nacos:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
networks:
|
||
- txw-network
|
||
|
||
mhzc:
|
||
image: txw-all:1.0.0-BETA
|
||
container_name: txw-mhzc
|
||
environment:
|
||
- SERVICE_NAME=mhzc
|
||
- SPRING_PROFILES_ACTIVE=prod
|
||
- NACOS_SERVER_ADDR=nacos:8848
|
||
- SPRING_REDIS_HOST=redis
|
||
- SPRING_REDIS_PORT=6379
|
||
- SPRING_REDIS_PASSWORD=redis_password
|
||
ports:
|
||
- "9302:9302"
|
||
depends_on:
|
||
nacos:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
networks:
|
||
- txw-network
|
||
|
||
yygl:
|
||
image: txw-all:1.0.0-BETA
|
||
container_name: txw-yygl
|
||
environment:
|
||
- SERVICE_NAME=yygl
|
||
- SPRING_PROFILES_ACTIVE=prod
|
||
- NACOS_SERVER_ADDR=nacos:8848
|
||
- SPRING_REDIS_HOST=redis
|
||
- SPRING_REDIS_PORT=6379
|
||
- SPRING_REDIS_PASSWORD=redis_password
|
||
ports:
|
||
- "20010:20010"
|
||
depends_on:
|
||
nacos:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
networks:
|
||
- txw-network
|
||
|
||
# ============================================
|
||
# 前端服务
|
||
# ============================================
|
||
|
||
# ============================================
|
||
# 网络和存储卷
|
||
# ============================================
|
||
|
||
networks:
|
||
txw-network:
|
||
driver: bridge
|
||
|
||
volumes:
|
||
nacos-data:
|
||
redis-data:
|
||
minio-data: |