0985dacbfe
- 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
4.2 KiB
4.2 KiB
单体后端容器运行说明
本文档描述 xingyun-api 的单体后端容器运行方式。MySQL、Redis、RabbitMQ 均视为外部基础设施,容器启动时通过环境变量接入,不由当前仓库内编排提供。
前置条件
- JDK 21
- Maven 3.9+
- Docker 24+
- 可用的外部
MySQL、Redis、RabbitMQ
构建 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 compose,xingyun-api/ 目录还提供了只启动 xingyun-api 的 compose.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_URLXINGYUN_DB_USERNAMEXINGYUN_DB_PASSWORDXINGYUN_REDIS_HOSTXINGYUN_REDIS_PASSWORDXINGYUN_RABBITMQ_ADDRESSESXINGYUN_RABBITMQ_USERNAMEXINGYUN_RABBITMQ_PASSWORD
推荐把以上变量写入 xingyun-api/.env,再执行 docker compose up -d --build。
常用可选项
XINGYUN_REDIS_PORT默认值:6379XINGYUN_REDIS_DATABASE默认值:0XINGYUN_REDIS_PASSWORD默认值:passwordXINGYUN_REDIS_TIMEOUT默认值:10sXINGYUN_RABBITMQ_VHOST默认值:/XINGYUN_RABBITMQ_CONNECTION_TIMEOUT默认值:60000XINGYUN_UPLOAD_DOMAIN默认值:http://localhost:8080JAVA_OPTS追加 JVM 参数,例如堆大小、GC、诊断开关
以下变量通常不需要在 compose.yaml 中重复声明,镜像和应用配置已提供默认值:
SPRING_PROFILES_ACTIVEXINGYUN_TMP_DIRXINGYUN_UPLOAD_DIRXINGYUN_SECURITY_UPLOAD_DIRXINGYUN_LOG_DIR
数据卷与目录
容器默认使用以下目录:
/opt/data/tmp/opt/data/upload/opt/data/security-upload/opt/logs
推荐全部挂载为持久化卷,避免上传文件和日志随容器删除而丢失。
说明
- 当前方案只覆盖单体模块
xingyun-api - 当前方案不自动初始化数据库结构或导入演示数据
- 当前方案不包含
xingyun-front与云端模块的容器部署