txw/devops/docker-compose.yml

186 lines
4.9 KiB
YAML
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.

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: