Files
yueqian-erp/docs/docker-monolith.md
T
zdh 0985dacbfe feat: init yueqian-erp based on xingyun
- Change groupId: com.lframework -> com.yueqian
- Change artifactId: xingyun -> yueqian-erp
- Rename modules: xingyun-* -> yueqian-erp-*
- Update Java packages: com.lframework.xingyun -> com.yueqian.xingyun
- Preserve external Jugg framework dependencies as com.lframework
- Update README and documentation
2026-06-13 20:07:18 +08:00

4.2 KiB
Raw Blame History

单体后端容器运行说明

本文档描述 xingyun-api 的单体后端容器运行方式。MySQLRedisRabbitMQ 均视为外部基础设施,容器启动时通过环境变量接入,不由当前仓库内编排提供。

前置条件

  • JDK 21
  • Maven 3.9+
  • Docker 24+
  • 可用的外部 MySQLRedisRabbitMQ

构建 Jar 与镜像

先在仓库根目录执行 Maven 打包:

mvn -pl xingyun-api -am package -DskipTests

打包完成后,xingyun-api/target/ 中会同时生成 jar 和经过 Maven 资源过滤后的 Dockerfile。使用该目录作为镜像构建上下文:

docker build -t xingyun-api:local -f xingyun-api/target/Dockerfile xingyun-api/target

如果希望使用脚本构建镜像,请先手动完成 Maven 打包,再执行脚本:

mvn -pl xingyun-api -am package -DskipTests
cd xingyun-api
sh build-image.sh

自定义镜像标签示例:

mvn -pl xingyun-api -am package -DskipTests
cd xingyun-api
sh build-image.sh my-registry.example.com/xingyun-api:1.0.0

Windows PowerShell:

mvn -pl xingyun-api -am package -DskipTests
cd xingyun-api
.\build-image.ps1

Windows cmd:

mvn -pl xingyun-api -am package -DskipTests
cd xingyun-api
build-image.bat

如果更习惯 docker composexingyun-api/ 目录还提供了只启动 xingyun-apicompose.yaml。它同样依赖已打包完成的 xingyun-api/target/ 目录:

cd xingyun-api
cp .env.example .env
docker compose up -d --build

compose.yaml 只保留部署层高频参数;完整变量清单和示例值见 xingyun-api/.env.example

运行容器

示例:

docker run -d --name xingyun-api ^
  -p 8080:8080 ^
  -e XINGYUN_DB_URL="jdbc:mysql://mysql.example.com:3306/platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8" ^
  -e XINGYUN_DB_USERNAME="root" ^
  -e XINGYUN_DB_PASSWORD="password" ^
  -e XINGYUN_REDIS_HOST="redis.example.com" ^
  -e XINGYUN_REDIS_PORT="6379" ^
  -e XINGYUN_REDIS_DATABASE="0" ^
  -e XINGYUN_REDIS_PASSWORD="password" ^
  -e XINGYUN_RABBITMQ_ADDRESSES="rabbitmq.example.com:5672" ^
  -e XINGYUN_RABBITMQ_VHOST="/" ^
  -e XINGYUN_RABBITMQ_USERNAME="username" ^
  -e XINGYUN_RABBITMQ_PASSWORD="password" ^
  -e XINGYUN_UPLOAD_DOMAIN="http://localhost:8080" ^
  -e JAVA_OPTS="-Xms512m -Xmx512m" ^
  -v xingyun-tmp:/opt/data/tmp ^
  -v xingyun-upload:/opt/data/upload ^
  -v xingyun-security-upload:/opt/data/security-upload ^
  -v xingyun-logs:/opt/logs ^
  xingyun-api:local

如果在 Linux/macOS 下执行,请将续行符 ^ 替换为 \

环境变量约定

必填

  • XINGYUN_DB_URL
  • XINGYUN_DB_USERNAME
  • XINGYUN_DB_PASSWORD
  • XINGYUN_REDIS_HOST
  • XINGYUN_REDIS_PASSWORD
  • XINGYUN_RABBITMQ_ADDRESSES
  • XINGYUN_RABBITMQ_USERNAME
  • XINGYUN_RABBITMQ_PASSWORD

推荐把以上变量写入 xingyun-api/.env,再执行 docker compose up -d --build

常用可选项

  • XINGYUN_REDIS_PORT 默认值:6379
  • XINGYUN_REDIS_DATABASE 默认值:0
  • XINGYUN_REDIS_PASSWORD 默认值:password
  • XINGYUN_REDIS_TIMEOUT 默认值:10s
  • XINGYUN_RABBITMQ_VHOST 默认值:/
  • XINGYUN_RABBITMQ_CONNECTION_TIMEOUT 默认值:60000
  • XINGYUN_UPLOAD_DOMAIN 默认值:http://localhost:8080
  • JAVA_OPTS 追加 JVM 参数,例如堆大小、GC、诊断开关

以下变量通常不需要在 compose.yaml 中重复声明,镜像和应用配置已提供默认值:

  • SPRING_PROFILES_ACTIVE
  • XINGYUN_TMP_DIR
  • XINGYUN_UPLOAD_DIR
  • XINGYUN_SECURITY_UPLOAD_DIR
  • XINGYUN_LOG_DIR

数据卷与目录

容器默认使用以下目录:

  • /opt/data/tmp
  • /opt/data/upload
  • /opt/data/security-upload
  • /opt/logs

推荐全部挂载为持久化卷,避免上传文件和日志随容器删除而丢失。

说明

  • 当前方案只覆盖单体模块 xingyun-api
  • 当前方案不自动初始化数据库结构或导入演示数据
  • 当前方案不包含 xingyun-front 与云端模块的容器部署