XXPay支付系统Docker Compose部署指南
2025-07-08 01:09:23作者:冯爽妲Honey
概述
XXPay支付系统是一个开源的支付解决方案,采用微服务架构设计。本文将详细介绍如何使用Docker Compose部署XXPay支付系统的各个组件,包括后端服务、前端界面以及所需的中间件。
系统架构
XXPay支付系统主要由以下组件构成:
-
核心服务:
- 支付服务(payment)
- 管理后台服务(manager)
- 商户服务(merchant)
-
前端界面:
- 支付前台(ui-payment)
- 管理后台(ui-manager)
- 商户后台(ui-merchant)
-
基础设施:
- MySQL数据库
- Redis缓存
- ActiveMQ消息队列
部署准备
在开始部署前,请确保已安装以下环境:
- Docker 19.03+
- Docker Compose 1.25+
详细配置解析
1. MySQL数据库服务
mysql:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: "rootroot"
MYSQL_DATABASE: "jeepaydb"
MYSQL_USER: "jeepay"
MYSQL_PASSWORD: "jeepay"
volumes:
- mysql:/var/lib/mysql
- ./docs/sql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
关键配置说明:
- 使用MySQL 8官方镜像
- 自动创建数据库(jeepaydb)和用户(jeepay)
- 通过挂载init.sql文件实现数据库初始化
- 数据持久化到mysql卷
2. Redis缓存服务
redis:
image: redis:latest
ports:
- "6380:6379"
volumes:
- redis:/data
配置要点:
- 使用最新版Redis官方镜像
- 将默认6379端口映射到宿主机的6380端口
- 数据持久化到redis卷
3. ActiveMQ消息队列
activemq:
build:
context: ./docker/activemq
dockerfile: Dockerfile
ports:
- "8161:8161" # 管理控制台
- "61616:61616" # 消息端口
volumes:
- activemq:/opt/activemq
- ./docker/activemq/activemq.xml:/opt/activemq/conf/activemq.xml
特性说明:
- 使用自定义构建的ActiveMQ镜像
- 暴露管理控制台端口(8161)和消息端口(61616)
- 挂载自定义的activemq.xml配置文件
- 数据持久化到activemq卷
4. 核心服务配置
XXPay的三个核心服务(payment、manager、merchant)配置类似,以payment服务为例:
payment:
build:
context: .
dockerfile: Dockerfile
args:
PORT: 9216
PLATFORM: payment
ports:
- "9216:9216"
depends_on:
- mysql
- redis
- activemq
volumes:
- ./logs/payment:/workspace/logs
- ./conf/payment/application.yml:/workspace/application.yml
关键点:
- 通过Dockerfile构建镜像
- 每个服务使用不同的端口(payment:9216, manager:9217, merchant:9218)
- 依赖mysql、redis和activemq服务
- 挂载日志目录和配置文件实现持久化
5. 前端服务配置
前端服务同样有三个,以ui-payment为例:
ui-payment:
build:
context: ${UI_BASE_DIR}/jeepay-ui
dockerfile: Dockerfile
args:
PLATFORM: cashier
environment:
- BACKEND_HOST=172.20.0.21:9216
ports:
- "9226:80"
配置说明:
- 基于jeepay-ui项目构建
- 不同平台使用不同参数(manager/merchant/cashier)
- 通过环境变量配置后端API地址
- 端口映射(ui-payment:9226, ui-manager:9227, ui-merchant:9228)
网络配置
networks:
jeepay:
ipam:
config:
- subnet: 172.20.0.0/16
网络规划:
- 自定义jeepay网络
- 使用172.20.0.0/16子网
- 为每个容器分配固定IP地址,便于服务间通信
数据持久化
volumes:
mysql:
redis:
activemq:
通过Docker卷实现以下数据的持久化:
- MySQL数据库文件
- Redis数据
- ActiveMQ消息数据
部署命令
-
构建依赖(首次部署或修改MQ配置时需要):
docker build -t jeepay-deps:latest -f docs/Dockerfile .
-
启动服务:
docker-compose up -d
-
其他常用命令:
- 重新构建并启动:
docker-compose up --build
- 强制重新创建容器:
docker-compose up --force-recreate
- 完全重新构建:
docker-compose up --build --force-recreate
- 重新构建并启动:
注意事项
- 前端构建需要先获取子模块或单独克隆前端项目
- 配置文件(application.yml)需要提前准备好并放在正确位置
- 首次启动时MySQL初始化可能需要较长时间
- 生产环境建议配置Nginx反向代理和HTTPS
扩展选项
配置文件中还提供了其他消息队列的配置选项,包括:
- RabbitMQ(支持延迟消息插件)
- RocketMQ(名称服务和broker)
如需使用这些替代方案,只需取消注释相应配置并注释掉ActiveMQ部分即可。
通过本文介绍的Docker Compose部署方式,您可以快速搭建XXPay支付系统的完整环境,便于开发测试或生产部署。根据实际需求,您可以进一步调整资源配置、网络设置和安全策略。