From 93d510f14cc3c00bfe142ec772db0c1668d3a19d Mon Sep 17 00:00:00 2001 From: gitadmin Date: Mon, 28 Sep 2026 18:56:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rxthinkcmf-web-docker-compose.yml | 121 ++++++++++++++++++ config-file/rxthinkcmf-web.json | 56 ++++++++ 2 files changed, 177 insertions(+) create mode 100644 compose-file/rxthinkcmf-web-docker-compose.yml create mode 100644 config-file/rxthinkcmf-web.json diff --git a/compose-file/rxthinkcmf-web-docker-compose.yml b/compose-file/rxthinkcmf-web-docker-compose.yml new file mode 100644 index 0000000..7a7a5fa --- /dev/null +++ b/compose-file/rxthinkcmf-web-docker-compose.yml @@ -0,0 +1,121 @@ +# Docker Compose 文件版本定义 +# 3.7 版本支持丰富的部署配置和资源限制功能 +version: '3.7' + +# 服务定义块,包含所有需要部署的容器服务 +services: + # 后端服务 - 小蚂蚁管理系统后端 + rxthinkcmf-admin: + # 镜像地址:从私有Harbor仓库拉取镜像 + # ${VERSION:-latest} 表示使用VERSION环境变量,如果未设置则使用latest标签 + image: manage.harbor.djangoadmin.cn/${DOCKER_REGISTRYURL_NAMESPACE}/${SERVER_NAME}:${VERSION:-latest} + + # 容器名称:指定容器的名称,便于管理和识别 + container_name: ${SERVER_NAME} + + # 重启策略:always表示容器退出时总是自动重启 + # 确保服务在异常退出后能够自动恢复 + restart: always + + # 网络模式:host表示使用主机网络模式 + # 容器直接使用宿主机的网络栈,性能更好,端口直接暴露在主机上 + network_mode: host + + # 端口映射:将容器内的8081端口映射到主机的8081端口 + # 格式:主机端口:容器端口 + ports: + - 8081:8081 + + # 数据卷挂载:将主机文件或目录挂载到容器内 + volumes: + # 挂载主机hosts文件到容器内(只读模式) + # 用于容器内的域名解析,与主机保持一致 + - /etc/hosts:/etc/hosts:ro + + # 挂载上传目录:将当前目录下的upload目录挂载到容器的/opt/apps/upload + # 用于持久化存储上传的文件 + - $PWD/upload:/opt/apps/upload + + # 挂载包目录:将当前目录下的package目录挂载到容器的/opt/apps/package + # 用于存储应用程序包或其他资源文件 + - $PWD/package:/opt/apps/package + + # 部署配置:定义资源限制和预留(Docker Swarm模式下的配置) + # 在单机Docker Compose中也会被部分支持 + deploy: + resources: + # 资源限制:容器最多可以使用的资源量 + limits: + cpus: '2' # 最多使用2个CPU核心 + memory: 1.5G # 最多使用1.5GB内存 + # 资源预留:保证容器至少获得的资源量 + reservations: + cpus: '0.25' # 至少保留0.25个CPU核心 + memory: 500M # 至少保留500MB内存 + + # 前端服务 - 小蚂蚁管理系统前端 + rxthinkcmf-web: + # 镜像地址:前端服务的Docker镜像 + image: manage.harbor.djangoadmin.cn/${DOCKER_REGISTRYURL_NAMESPACE}/${SERVER_NAME}:${VERSION:-latest} + + # 容器名称:前端服务容器名称 + container_name: ${SERVER_NAME} + + # 重启策略:总是自动重启 + restart: always + + # 网络模式:使用主机网络模式 + network_mode: host + + # 端口映射:前端服务监听8082端口 + ports: + - 8082:8082 + + # 数据卷挂载 + volumes: + # 挂载主机hosts文件(只读) + - /etc/hosts:/etc/hosts:ro + + # 挂载上传目录(读写模式) + # :rw 表示读写权限(默认模式,显式声明更清晰) + - $PWD/upload:/opt/apps/upload:rw + + # 挂载包目录(读写模式) + - $PWD/package:/opt/apps/package:rw + + # 环境变量:设置容器内的环境变量 + environment: + # 语言设置:设置为英文UTF-8编码 + - LANG=en_US.UTF-8 + + # 本地化设置:全部使用英文UTF-8 + - LC_ALL=en_US.UTF-8 + + # Java虚拟机参数:设置文件编码为UTF-8 + # 确保中文等特殊字符正确处理 + - JAVA_OPTS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 + + # 部署配置:资源限制和预留 + deploy: + resources: + # 资源上限 + limits: + cpus: '2' # 最多2个CPU核心 + memory: 1.5G # 最多1.5GB内存 + # 资源保障 + reservations: + cpus: '0.25' # 至少0.25个CPU核心 + memory: 500M # 至少500MB内存 + +# 注意:该配置文件中使用了以下特殊配置: +# 1. network_mode: host - 主机网络模式,容器直接使用主机网络 +# 2. ${VERSION:-latest} - 环境变量替换,支持动态版本控制 +# 3. deploy.resources - Docker Swarm模式的资源管理,在单机模式下也有部分效果 +# 4. 多目录挂载 - 实现数据持久化和主机-容器文件共享 +# 5. 环境变量设置 - 确保应用程序的编码和语言环境正确 + +# 使用说明: +# 1. 部署命令:VERSION=1.2.0 docker-compose up -d +# 2. 查看日志:docker-compose logs -f +# 3. 停止服务:docker-compose down +# 4. 更新服务:VERSION=1.2.1 docker-compose up -d \ No newline at end of file diff --git a/config-file/rxthinkcmf-web.json b/config-file/rxthinkcmf-web.json new file mode 100644 index 0000000..c8b502f --- /dev/null +++ b/config-file/rxthinkcmf-web.json @@ -0,0 +1,56 @@ +{ + "branchConfig": { + "master": { + "MAVEN_SET": "nexus-maven-dev", + "registry": "192.168.10.102:8001", + "registryCredential": "xiaomayi-hub-credentials", + "namespace": "xiaomayi", + "serverIP01": "47.103.201.89", + "serverPort": 13622, + "jenkinsAgent": "S205-docker" + }, + "dev": { + "MAVEN_SET": "nexus-maven-dev", + "registry": "192.168.10.102:8001", + "registryCredential": "xiaomayi-hub-credentials", + "namespace": "xiaomayi", + "serverIP01": "47.103.201.89", + "serverPort": 13622, + "jenkinsAgent": "S205-docker" + }, + "test": { + "MAVEN_SET": "nexus-maven-test", + "registry": "192.168.10.102:8001", + "registryCredential": "xiaomayi-hub-credentials", + "namespace": "xiaomayi", + "serverIP01": "47.103.201.89", + "serverPort": 13622, + "jenkinsAgent": "S205-docker" + } + }, + "serviceConfig": { + "rxthinkcmf-admin": { + "containerName": "rxthinkcmf-admin", + "jarPackageName": "xiaomayi-admin.jar", + "servicePath": "xiaomayi-modules/xiaomayi-admin", + "port": "8081", + "javaOpts": "-server -Xms256m -Xmx4g -Xss256k", + "serverHost01": "serverIP01" + }, + "rxthinkcmf-web": { + "containerName": "rxthinkcmf-web", + "jarPackageName": "xiaomayi-web.jar", + "servicePath": "xiaomayi-modules/xiaomayi-web", + "port": "8082", + "javaOpts": "-server -Xms256m -Xmx4g -Xss256k", + "serverHost01": "serverIP01" + }, + "rxthinkcmf-admin-ui": { + "deployMethod": "static", + "projectName": "xiaomayi-admin-ui", + "packageName": "xiaomayi-admin-ui.tar.gz", + "servicePath": "xiaomayi-ui", + "serverHost01": "serverIP01" + } + } +} \ No newline at end of file