Compare commits
47
Commits
9437f0bb56
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75872d63fe | ||
|
|
de4b33d5d2 | ||
|
|
8b53bfda86 | ||
|
|
978fa95d3c | ||
|
|
fdbe0d39df | ||
|
|
5b9c8030d7 | ||
|
|
0915a525d9 | ||
|
|
f531978a3f | ||
|
|
522e5c6200 | ||
|
|
00527e4fa8 | ||
|
|
e2a73b8a1b | ||
|
|
3ce734005e | ||
|
|
9c4b9ff4da | ||
|
|
630c10f830 | ||
|
|
6f774afa42 | ||
|
|
c635e00ef4 | ||
|
|
cc355f3d07 | ||
|
|
92841b5197 | ||
|
|
c116307270 | ||
|
|
4df8b99dce | ||
|
|
11c85baa76 | ||
|
|
38595a3338 | ||
|
|
ffc533d1c4 | ||
|
|
4feaf0c054 | ||
|
|
020caa889f | ||
|
|
e6269fcb13 | ||
|
|
725f74c673 | ||
|
|
9e8b25abe9 | ||
|
|
e6f2969f56 | ||
|
|
afd22b6521 | ||
|
|
6a3a197c5d | ||
|
|
93d510f14c | ||
|
|
bfd3d17262 | ||
|
|
3de71937e3 | ||
|
|
9f89ac25e5 | ||
|
|
395a93a9e3 | ||
|
|
b29969a3c2 | ||
|
|
02bd508487 | ||
|
|
12e1307630 | ||
|
|
97b62015d6 | ||
|
|
af480ec812 | ||
|
|
6c17d818da | ||
|
|
33f933b66d | ||
|
|
ba8e635773 | ||
|
|
7bf9cecef7 | ||
|
|
c23f3f84d9 | ||
|
|
723f3a9af7 |
@@ -0,0 +1,121 @@
|
||||
# Docker Compose 文件版本定义
|
||||
# 3.7 版本支持丰富的部署配置和资源限制功能
|
||||
version: '3.7'
|
||||
|
||||
# 服务定义块,包含所有需要部署的容器服务
|
||||
services:
|
||||
# 后端服务 - 小蚂蚁管理系统后端
|
||||
easygoadmin-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内存
|
||||
|
||||
# 前端服务 - 小蚂蚁管理系统前端
|
||||
easygoadmin-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
|
||||
@@ -1,484 +1,655 @@
|
||||
version: '3.7'
|
||||
# ==========================================================================================
|
||||
# Docker Compose 配置(Compose V2 规范,无需 version 字段)
|
||||
# 应用服务定义区,包含多种 Go 框架 + 多种前端 UI 组件库的组合服务
|
||||
# ==========================================================================================
|
||||
|
||||
# 应用服务
|
||||
# 应用服务定义区,包含多种 Go 框架 + 多种前端 UI 组件库的组合服务
|
||||
services:
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Gin 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
gin_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
# 镜像名称:从私有仓库拉取,格式为 ${仓库地址}/xiaomayi/${服务名}:${版本号}
|
||||
# 版本号未指定时默认使用 latest
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称,使用环境变量 ${SERVER_NAME} 指定,便于识别
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
#build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 以特权模式运行容器,赋予容器访问宿主机文件系统、设备等的权限
|
||||
# 注意:特权模式安全性较低,生产环境需谨慎使用
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 指定容器内运行进程的用户为 root
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 启动策略:始终重启(容器退出时自动重启)
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 网络模式:host 模式,容器直接使用宿主机网络,无需 NAT 转换
|
||||
# 注意:host 模式下 ports 端口映射实际不生效,仅作声明用途
|
||||
#network_mode: host
|
||||
# 端口映射声明(host 模式下实际由应用自身监听端口)
|
||||
ports:
|
||||
- 8010:8010
|
||||
# 文件挂载
|
||||
# 文件挂载:将宿主机当前目录下 ${SERVER_NAME}/upload 挂载到容器内上传目录
|
||||
# 用于持久化用户上传的文件
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 从 .env.local 文件加载环境变量到容器
|
||||
env_file:
|
||||
- .env.gin
|
||||
# 日志配置:使用 json-file 驱动,单个日志文件最大 500MB,最多保留 10 个
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Gin 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
gin_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 镜像名称(同上,使用环境变量动态拼接)
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式运行
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 容器内运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启策略
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8013 端口)
|
||||
ports:
|
||||
- 8013:8013
|
||||
# 文件挂载
|
||||
- 8013:8000
|
||||
# 上传文件持久化挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.gin.elevue
|
||||
# 日志轮转配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Gin 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
gin_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8016 端口)
|
||||
ports:
|
||||
- 8016:8016
|
||||
# 文件挂载
|
||||
- 8016:8000
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.gin.antdvue
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Gin 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
gin_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8019 端口)
|
||||
ports:
|
||||
- 8019:8000
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.gin.naivevue
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# Beego 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
beego_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8030 端口)
|
||||
ports:
|
||||
- 8030:8030
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.beego
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Beego 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
beego_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8033 端口)
|
||||
ports:
|
||||
- 8033:8033
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件(已补全,与其他服务保持一致)
|
||||
env_file:
|
||||
- .env.beego
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Beego 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
beego_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8036 端口)
|
||||
ports:
|
||||
- 8036:8036
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.beego
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Beego 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
beego_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8039 端口)
|
||||
ports:
|
||||
- 8039:8039
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.beego
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# GoFrame 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
goframe_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
||||
#network_mode: host
|
||||
# 端口映射:宿主机端口:容器端口
|
||||
ports:
|
||||
- 8020:8020
|
||||
# 文件挂载
|
||||
- 8020:8000
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.goframe
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# GoFrame 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
goframe_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
||||
#network_mode: host
|
||||
# 端口映射:宿主机端口:容器端口
|
||||
ports:
|
||||
- 8023:8023
|
||||
# 文件挂载
|
||||
- 8023:8000
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.goframe.elevue
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# GoFrame 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
goframe_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
||||
#network_mode: host
|
||||
# 端口映射:宿主机端口:容器端口
|
||||
ports:
|
||||
- 8026:8026
|
||||
# 文件挂载
|
||||
- 8026:8000
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.goframe.antdvue
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# GoFrame 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
goframe_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
||||
#network_mode: host
|
||||
# 端口映射:宿主机端口:容器端口
|
||||
ports:
|
||||
- 8029:8000
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.goframe.naivevue
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# Iris 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
iris_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8040 端口)
|
||||
ports:
|
||||
- 8040:8040
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.iris
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Iris 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
iris_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8043 端口)
|
||||
ports:
|
||||
- 8043:8043
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.iris
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Iris 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
iris_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8046 端口)
|
||||
ports:
|
||||
- 8046:8046
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.iris
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Iris 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
iris_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8049 端口)
|
||||
ports:
|
||||
- 8049:8049
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.iris
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# Echo 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
echo_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8050 端口)
|
||||
ports:
|
||||
- 8050:8050
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.echo
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Echo 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
echo_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8053 端口)
|
||||
ports:
|
||||
- 8053:8053
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.echo
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Echo 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
echo_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8056 端口)
|
||||
ports:
|
||||
- 8056:8056
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.echo
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# Echo 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
echo_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
#network_mode: host
|
||||
# 端口映射(8059 端口)
|
||||
ports:
|
||||
- 8059:8059
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.echo
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
@@ -1,329 +1,521 @@
|
||||
# Docker Compose 文件版本,3.7 支持大多数现代 Docker 特性
|
||||
version: '3.7'
|
||||
|
||||
# 应用服务
|
||||
# 应用服务定义区,包含多种 Python Web 框架 + 多种前端 UI 组件库的组合服务
|
||||
services:
|
||||
# 网关服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Django 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
django_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
# 镜像名称:从私有仓库拉取,格式为 ${仓库地址}/xiaomayi/${服务名}:${版本号}
|
||||
# 版本号未指定时默认使用 latest
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称,使用环境变量 ${SERVER_NAME} 指定,便于识别
|
||||
container_name: ${SERVER_NAME}
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 以特权模式运行容器,赋予容器访问宿主机文件系统、设备等的权限
|
||||
# 注意:特权模式安全性较低,生产环境需谨慎使用
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 指定容器内运行进程的用户为 root
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 启动策略:始终重启(容器退出时自动重启)
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# 网络模式:host 模式,容器直接使用宿主机网络,无需 NAT 转换
|
||||
# 注意:host 模式下 ports 端口映射实际不生效,仅作声明用途
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射声明(host 模式下实际由应用自身监听端口)
|
||||
ports:
|
||||
- 8010:8010
|
||||
# 文件挂载
|
||||
# 文件挂载:将宿主机当前目录下的 uploads 挂载到容器内上传目录
|
||||
# 用于持久化用户上传的文件
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 从 .env.local 文件加载环境变量到容器
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置:使用 json-file 驱动,单个日志文件最大 500MB,最多保留 10 个
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Django 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
django_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 镜像名称(同上,使用环境变量动态拼接)
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式运行
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 容器内运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启策略
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8013 端口)
|
||||
ports:
|
||||
- 8013:8013
|
||||
# 文件挂载
|
||||
# 上传文件持久化挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志轮转配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Django 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
django_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8016 端口)
|
||||
ports:
|
||||
- 8016:8016
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 网关服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Django 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
django_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射(8019 端口)
|
||||
ports:
|
||||
- 8019:8019
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# Flask 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
flask_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8020 端口)
|
||||
ports:
|
||||
- 8020:8020
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Flask 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
flask_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8023 端口)
|
||||
ports:
|
||||
- 8023:8023
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Flask 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
flask_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8026 端口)
|
||||
ports:
|
||||
- 8026:8026
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Flask 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
flask_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射(8029 端口)
|
||||
ports:
|
||||
- 8029:8029
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# FastAPI 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
fastapi_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8030 端口)
|
||||
ports:
|
||||
- 8030:8030
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# FastAPI 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
fastapi_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8033 端口)
|
||||
ports:
|
||||
- 8033:8033
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# FastAPI 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
fastapi_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8036 端口)
|
||||
ports:
|
||||
- 8036:8036
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
|
||||
# ==========================================================================================
|
||||
# FastAPI 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
fastapi_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射(8039 端口)
|
||||
ports:
|
||||
- 8039:8039
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# Tornado 框架 + Layui 前端模板
|
||||
# ==========================================================================================
|
||||
tornado_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8040 端口)
|
||||
ports:
|
||||
- 8040:8040
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Tornado 框架 + ElementPlus 前端模板
|
||||
# ==========================================================================================
|
||||
tornado_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8043 端口)
|
||||
ports:
|
||||
- 8043:8043
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
|
||||
# ==========================================================================================
|
||||
# Tornado 框架 + AntDesignVue 前端模板
|
||||
# ==========================================================================================
|
||||
tornado_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
# 运行用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
# 始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
# 端口映射(8046 端口)
|
||||
ports:
|
||||
- 8046:8046
|
||||
# 文件挂载
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
|
||||
# ==========================================================================================
|
||||
# Tornado 框架 + NaiveUI 前端模板
|
||||
# ==========================================================================================
|
||||
tornado_naivevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 特权模式
|
||||
privileged: true
|
||||
# 运行用户
|
||||
user: root
|
||||
# 始终重启
|
||||
restart: always
|
||||
# host 网络模式
|
||||
network_mode: host
|
||||
# 端口映射(8049 端口)
|
||||
ports:
|
||||
- 8049:8049
|
||||
# 上传目录挂载
|
||||
volumes:
|
||||
- $PWD/uploads:/data/apps/uploads
|
||||
# 环境变量文件
|
||||
env_file:
|
||||
- .env.local
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
@@ -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
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"branchConfig": {
|
||||
"master": {
|
||||
"PIP_SET": "nexus-pip-prod",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.109",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"PIP_SET": "nexus-pip-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.109",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"test": {
|
||||
"PIP_SET": "nexus-pip-test",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.109",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"django_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "django_layui",
|
||||
"packageName": "django_layui.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Django_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"django_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "django_elevue",
|
||||
"packageName": "django_elevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Django_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"django_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "django_antdvue",
|
||||
"packageName": "django_antdvue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Django_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"django_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "django_naivevue",
|
||||
"packageName": "django_naivevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Django_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"flask_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "flask_layui",
|
||||
"packageName": "flask_layui.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Flask_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"flask_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "flask_elevue",
|
||||
"packageName": "flask_elevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Flask_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"flask_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "flask_antdvue",
|
||||
"packageName": "flask_antdvue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Flask_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"flask_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "flask_naivevue",
|
||||
"packageName": "flask_naivevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Flask_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"fastapi_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "fastapi_layui",
|
||||
"packageName": "fastapi_layui.tar.gz",
|
||||
"serviceName": "DjangoAdmin_FastAPI_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"fastapi_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "fastapi_elevue",
|
||||
"packageName": "fastapi_elevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_FastAPI_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"fastapi_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "fastapi_antdvue",
|
||||
"packageName": "fastapi_antdvue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_FastAPI_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"fastapi_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "fastapi_naivevue",
|
||||
"packageName": "fastapi_naivevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_FastAPI_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"tornado_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "tornado_layui",
|
||||
"packageName": "tornado_layui.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Tornado_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"tornado_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "tornado_elevue",
|
||||
"packageName": "tornado_elevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Tornado_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"tornado_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "tornado_antdvue",
|
||||
"packageName": "tornado_antdvue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Tornado_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"tornado_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "tornado_naivevue",
|
||||
"packageName": "tornado_naivevue.tar.gz",
|
||||
"serviceName": "DjangoAdmin_Tornado_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ common:
|
||||
# 仓库类型 - 仓库的技术类型(harbor、acr、dockerhub等)
|
||||
registryType: "harbor"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "python:3.9.13-rocky8-dos"
|
||||
registryImage: "python:3.12.8-rocky8-dos"
|
||||
|
||||
# 阿里云ACR仓库配置 - 云上仓库,用于生产环境或特定场景
|
||||
aliyun:
|
||||
@@ -28,7 +28,7 @@ common:
|
||||
# 仓库类型 - 阿里云容器镜像服务
|
||||
registryType: "acr"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "python:3.9.13-rocky8-dos"
|
||||
registryImage: "python:3.12.8-rocky8-dos"
|
||||
# Docker Hub配置 - 官方Docker仓库,用于公开镜像
|
||||
dockerhub:
|
||||
# Docker Hub地址 - 官方Docker仓库地址
|
||||
@@ -40,7 +40,7 @@ common:
|
||||
# 仓库类型 - 官方Docker仓库
|
||||
registryType: "dockerhub"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "python:3.9.13-rocky8-dos"
|
||||
registryImage: "python:3.12.8-rocky8-dos"
|
||||
|
||||
# 钉钉消息
|
||||
dingtalk:
|
||||
@@ -103,7 +103,7 @@ common:
|
||||
|
||||
# 部署相关配置
|
||||
deployScript: "deploy_env.sh" # 部署执行的shell脚本文件名
|
||||
deployPath: "/opt/apps" # 目标服务器上的应用部署根路径
|
||||
deployPath: "/usr/local/docker/nginx/html" # 目标服务器上的应用部署根路径
|
||||
|
||||
# ==============================================================================
|
||||
# 短信服务配置
|
||||
@@ -385,18 +385,18 @@ branchConfig:
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
buildOptions: "" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# 服务配置 - 定义每个微服务的特定配置
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
django_layui2:
|
||||
django_layui:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "django_layui2"
|
||||
packageName: "django_layui2"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "django_layui"
|
||||
packageName: "django_layui"
|
||||
servicePath: "."
|
||||
pyFile: "manage.py"
|
||||
port: "8010"
|
||||
@@ -404,7 +404,7 @@ serviceConfig:
|
||||
composeFile: "python-docker-compose"
|
||||
django_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "django_elevue"
|
||||
packageName: "django_elevue"
|
||||
servicePath: "."
|
||||
@@ -419,12 +419,12 @@ serviceConfig:
|
||||
projectName: "django_elevue"
|
||||
containerName: "django_elevue"
|
||||
packageName: "django_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
django_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "django_antdvue"
|
||||
packageName: "django_antdvue"
|
||||
servicePath: "."
|
||||
@@ -439,12 +439,32 @@ serviceConfig:
|
||||
projectName: "django_antdvue"
|
||||
containerName: "django_antdvue"
|
||||
packageName: "django_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
django_naivevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "django_naivevue"
|
||||
packageName: "django_naivevue"
|
||||
servicePath: "."
|
||||
pyFile: "manage"
|
||||
port: "8019"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
django_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "django_naivevue"
|
||||
containerName: "django_naivevue"
|
||||
packageName: "django_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
flask_layui:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "flask_layui"
|
||||
packageName: "flask_layui"
|
||||
servicePath: "."
|
||||
@@ -454,7 +474,7 @@ serviceConfig:
|
||||
composeFile: "python-docker-compose"
|
||||
flask_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "flask_elevue"
|
||||
packageName: "flask_elevue"
|
||||
servicePath: "."
|
||||
@@ -469,12 +489,12 @@ serviceConfig:
|
||||
projectName: "flask_elevue"
|
||||
containerName: "flask_elevue"
|
||||
packageName: "flask_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
flask_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "flask_antdvue"
|
||||
packageName: "flask_antdvue"
|
||||
servicePath: "."
|
||||
@@ -489,12 +509,32 @@ serviceConfig:
|
||||
projectName: "flask_antdvue"
|
||||
containerName: "flask_antdvue"
|
||||
packageName: "flask_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
flask_naivevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "flask_naivevue"
|
||||
packageName: "flask_naivevue"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8029"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
flask_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "flask_naivevue"
|
||||
containerName: "flask_naivevue"
|
||||
packageName: "flask_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
fastapi_layui:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "fastapi_layui"
|
||||
packageName: "fastapi_layui"
|
||||
servicePath: "."
|
||||
@@ -504,7 +544,7 @@ serviceConfig:
|
||||
composeFile: "python-docker-compose"
|
||||
fastapi_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "fastapi_elevue"
|
||||
packageName: "fastapi_elevue"
|
||||
servicePath: "."
|
||||
@@ -519,12 +559,12 @@ serviceConfig:
|
||||
projectName: "fastapi_elevue"
|
||||
containerName: "fastapi_elevue"
|
||||
packageName: "fastapi_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
fastapi_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "fastapi_antdvue"
|
||||
packageName: "fastapi_antdvue"
|
||||
servicePath: "."
|
||||
@@ -539,12 +579,32 @@ serviceConfig:
|
||||
projectName: "fastapi_antdvue"
|
||||
containerName: "fastapi_antdvue"
|
||||
packageName: "fastapi_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
fastapi_naivevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "fastapi_naivevue"
|
||||
packageName: "fastapi_naivevue"
|
||||
servicePath: "."
|
||||
pyFile: "main"
|
||||
port: "8039"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
fastapi_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "fastapi_naivevue"
|
||||
containerName: "fastapi_naivevue"
|
||||
packageName: "fastapi_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
tornado_layui:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "tornado_layui"
|
||||
packageName: "tornado_layui"
|
||||
servicePath: "."
|
||||
@@ -554,7 +614,7 @@ serviceConfig:
|
||||
composeFile: "python-docker-compose"
|
||||
tornado_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "tornado_elevue"
|
||||
packageName: "tornado_elevue"
|
||||
servicePath: "."
|
||||
@@ -569,12 +629,12 @@ serviceConfig:
|
||||
projectName: "tornado_elevue"
|
||||
containerName: "tornado_elevue"
|
||||
packageName: "tornado_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
tornado_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "tornado_antdvue"
|
||||
packageName: "tornado_antdvue"
|
||||
servicePath: "."
|
||||
@@ -589,7 +649,27 @@ serviceConfig:
|
||||
projectName: "tornado_antdvue"
|
||||
containerName: "tornado_antdvue"
|
||||
packageName: "tornado_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
tornado_naivevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.12.8"
|
||||
containerName: "tornado_naivevue"
|
||||
packageName: "tornado_naivevue"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8049"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
tornado_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "tornado_naivevue"
|
||||
containerName: "tornado_naivevue"
|
||||
packageName: "tornado_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ branchConfig:
|
||||
# Docker镜像构建配置 - 生产环境构建参数
|
||||
docker:
|
||||
# Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
buildOptions: "--no-cache --pull"
|
||||
buildOptions: ""
|
||||
|
||||
# ==============================================================================
|
||||
# 镜像服务配置 - 定义每个基础镜像的特定配置
|
||||
@@ -473,6 +473,66 @@ serviceConfig:
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.25.1-debian12-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.27.2 CentOS 8 镜像配置
|
||||
go1.27.2-centos8-dos:
|
||||
baseImage: "centos:8" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.27.2-centos8-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.27.2.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.27.2-centos8-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.27.2 CentOS 8 镜像配置
|
||||
go1.27.2-rocky8-dos:
|
||||
baseImage: "rockylinux:8.9-minimal" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.27.2-rocky8-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.27.2.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.27.2-rocky8-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.27.2 Ubuntu 22.04 镜像配置
|
||||
go1.27.2-ubuntu22-dos:
|
||||
baseImage: "ubuntu:22.04" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.27.2-ubuntu22-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.27.2.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.27.2-ubuntu22-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.27.2 Debian 12 镜像配置
|
||||
go1.27.2-debian12-dos:
|
||||
baseImage: "debian:bookworm-slim" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.27.2-debian12-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.27.2.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.27.2-debian12-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Python 3.9.13 CentOS 8 镜像配置
|
||||
python3.9.13-centos8-dos:
|
||||
@@ -532,6 +592,64 @@ serviceConfig:
|
||||
tags:
|
||||
- "3.9.13-debian12-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Python 3.12.8 CentOS 8 镜像配置
|
||||
python3.12.8-centos8-dos:
|
||||
baseImage: "centos:8" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.12.8-centos8-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.12.8.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.12.8-centos8-dos" # 版本化标签(包含版本和系统信息)
|
||||
# Python 3.12.8 Rocky 8 镜像配置
|
||||
python3.12.8-rocky8-dos:
|
||||
baseImage: "rockylinux:8.9-minimal" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.12.8-rocky8-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.12.8.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.12.8-rocky8-dos" # 版本化标签(包含版本和系统信息)
|
||||
# Python 3.12.8 Ubuntu 22.04 镜像配置
|
||||
python3.12.8-ubuntu22-dos:
|
||||
baseImage: "ubuntu:22.04" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.12.8-ubuntu22-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.12.8.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.12.8-ubuntu22-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Python 3.12.8 Debian 12 镜像配置
|
||||
python3.12.8-debian12-dos:
|
||||
baseImage: debian:bookworm-slim" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.12.8-debian12-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.12.8.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.12.8-debian12-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Nginx 1.24 Alpine 镜像配置
|
||||
nginx1.24-alpine:
|
||||
baseImage: "nginx:1.24-alpine" # Nginx Alpine基础镜像
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"branchConfig": {
|
||||
"master": {
|
||||
"PIP_SET": "nexus-pip-prod",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.110",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"PIP_SET": "nexus-pip-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.110",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"test": {
|
||||
"PIP_SET": "nexus-pip-test",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.110",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"goframe_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "goframe_layui",
|
||||
"packageName": "goframe_layui.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_GoFrame_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"goframe_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "goframe_elevue",
|
||||
"packageName": "goframe_elevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_GoFrame_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"goframe_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "goframe_antdvue",
|
||||
"packageName": "goframe_antdvue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_GoFrame_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"goframe_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "goframe_naivevue",
|
||||
"packageName": "goframe_naivevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_GoFrame_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"gin_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "gin_layui",
|
||||
"packageName": "gin_layui.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Gin_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"gin_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "gin_elevue",
|
||||
"packageName": "gin_elevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Gin_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"gin_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "gin_antdvue",
|
||||
"packageName": "gin_antdvue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Gin_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"gin_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "gin_naivevue",
|
||||
"packageName": "gin_naivevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Gin_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"beego_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "beego_layui",
|
||||
"packageName": "beego_layui.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Beego_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"beego_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "beego_elevue",
|
||||
"packageName": "beego_elevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Beego_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"beego_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "beego_antdvue",
|
||||
"packageName": "beego_antdvue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Beego_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"beego_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "beego_naivevue",
|
||||
"packageName": "beego_naivevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Beego_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"iris_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "iris_layui",
|
||||
"packageName": "iris_layui.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Iris_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"iris_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "iris_elevue",
|
||||
"packageName": "iris_elevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Iris_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"iris_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "iris_antdvue",
|
||||
"packageName": "iris_antdvue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Iris_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"iris_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "iris_naivevue",
|
||||
"packageName": "iris_naivevue.tar.gz",
|
||||
"serviceName": "EasyGoAdmin_Iris_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ common:
|
||||
# 仓库类型 - 仓库的技术类型(harbor、acr、dockerhub等)
|
||||
registryType: "harbor"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "go:1.25.1-rocky8-dos"
|
||||
registryImage: "go:1.27.2-rocky8-dos"
|
||||
|
||||
# 阿里云ACR仓库配置 - 云上仓库,用于生产环境或特定场景
|
||||
aliyun:
|
||||
@@ -28,7 +28,7 @@ common:
|
||||
# 仓库类型 - 阿里云容器镜像服务
|
||||
registryType: "acr"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "go:1.25.1-rocky8-dos"
|
||||
registryImage: "go:1.27.2-rocky8-dos"
|
||||
# Docker Hub配置 - 官方Docker仓库,用于公开镜像
|
||||
dockerhub:
|
||||
# Docker Hub地址 - 官方Docker仓库地址
|
||||
@@ -40,7 +40,7 @@ common:
|
||||
# 仓库类型 - 官方Docker仓库
|
||||
registryType: "dockerhub"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "go:1.25.1-rocky8-dos"
|
||||
registryImage: "go:1.27.2-rocky8-dos"
|
||||
|
||||
# 钉钉消息
|
||||
dingtalk:
|
||||
@@ -103,7 +103,7 @@ common:
|
||||
|
||||
# 部署相关配置
|
||||
deployScript: "deploy_env.sh" # 部署执行的shell脚本文件名
|
||||
deployPath: "/opt/apps" # 目标服务器上的应用部署根路径
|
||||
deployPath: "/usr/local/docker/nginx/html" # 目标服务器上的应用部署根路径
|
||||
|
||||
# ==============================================================================
|
||||
# 短信服务配置
|
||||
@@ -394,10 +394,10 @@ branchConfig:
|
||||
serviceConfig:
|
||||
gin_layui2:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "gin_layui2"
|
||||
packageName: "gin_layui2"
|
||||
servicePath: "."
|
||||
servicePath: "./cmd/api"
|
||||
mainFile: "main.go"
|
||||
goFile: "gin_layui2"
|
||||
port: "8010"
|
||||
@@ -405,10 +405,10 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
gin_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "gin_elevue"
|
||||
packageName: "gin_elevue"
|
||||
servicePath: "."
|
||||
servicePath: "./cmd/api"
|
||||
mainFile: "main.go"
|
||||
goFile: "gin_elevue"
|
||||
port: "8013"
|
||||
@@ -416,20 +416,20 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
gin_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "gin_elevue"
|
||||
containerName: "gin_elevue"
|
||||
packageName: "gin_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
gin_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "gin_antdvue"
|
||||
packageName: "gin_antdvue"
|
||||
servicePath: "."
|
||||
servicePath: "./cmd/api"
|
||||
mainFile: "main.go"
|
||||
goFile: "gin_antdvue"
|
||||
port: "8016"
|
||||
@@ -437,17 +437,38 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
gin_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "gin_antdvue"
|
||||
containerName: "gin_antdvue"
|
||||
packageName: "gin_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
gin_naivevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "gin_naivevue"
|
||||
packageName: "gin_naivevue"
|
||||
servicePath: "./cmd/api"
|
||||
mainFile: "main.go"
|
||||
goFile: "gin_naivevue"
|
||||
port: "8019"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
gin_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "gin_naivevue"
|
||||
containerName: "gin_naivevue"
|
||||
packageName: "gin_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
goframe_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "goframe_layui"
|
||||
packageName: "goframe_layui"
|
||||
servicePath: "."
|
||||
@@ -458,7 +479,7 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
goframe_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "goframe_elevue"
|
||||
packageName: "goframe_elevue"
|
||||
servicePath: "."
|
||||
@@ -469,17 +490,17 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
goframe_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "goframe_elevue"
|
||||
containerName: "goframe_elevue"
|
||||
packageName: "goframe_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
goframe_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "goframe_antdvue"
|
||||
packageName: "goframe_antdvue"
|
||||
servicePath: "."
|
||||
@@ -490,17 +511,38 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
goframe_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "goframe_antdvue"
|
||||
containerName: "goframe_antdvue"
|
||||
packageName: "goframe_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
goframe_naivevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "goframe_naivevue"
|
||||
packageName: "goframe_naivevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "goframe_naivevue"
|
||||
port: "8029"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
goframe_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "goframe_naivevue"
|
||||
containerName: "goframe_naivevue"
|
||||
packageName: "goframe_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
beego_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "beego_layui"
|
||||
packageName: "beego_layui"
|
||||
servicePath: "."
|
||||
@@ -511,7 +553,7 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
beego_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "beego_elevue"
|
||||
packageName: "beego_elevue"
|
||||
servicePath: "."
|
||||
@@ -522,17 +564,17 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
beego_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "beego_elevue"
|
||||
containerName: "beego_elevue"
|
||||
packageName: "beego_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
beego_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "beego_antdvue"
|
||||
packageName: "beego_antdvue"
|
||||
servicePath: "."
|
||||
@@ -543,17 +585,38 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
beego_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "beego_antdvue"
|
||||
containerName: "beego_antdvue"
|
||||
packageName: "beego_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
beego_naivevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "beego_naivevue"
|
||||
packageName: "beego_naivevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "beego_abeego_naivevuetdvue"
|
||||
port: "8039"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
beego_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "beego_naivevue"
|
||||
containerName: "beego_naivevue"
|
||||
packageName: "beego_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
iris_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "iris_layui"
|
||||
packageName: "iris_layui"
|
||||
servicePath: "."
|
||||
@@ -564,7 +627,7 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
iris_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "iris_elevue"
|
||||
packageName: "iris_elevue"
|
||||
servicePath: "."
|
||||
@@ -575,17 +638,17 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
iris_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "iris_elevue"
|
||||
containerName: "iris_elevue"
|
||||
packageName: "iris_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
iris_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "iris_antdvue"
|
||||
packageName: "iris_antdvue"
|
||||
servicePath: "."
|
||||
@@ -596,17 +659,38 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
iris_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "iris_antdvue"
|
||||
containerName: "iris_antdvue"
|
||||
packageName: "iris_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
iris_naivevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "iris_naivevue"
|
||||
packageName: "iris_naivevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "iris_naivevue"
|
||||
port: "8049"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
iris_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "iris_naivevue"
|
||||
containerName: "iris_naivevue"
|
||||
packageName: "iris_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
echo_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "echo_layui"
|
||||
packageName: "echo_layui"
|
||||
servicePath: "."
|
||||
@@ -617,7 +701,7 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
echo_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "echo_elevue"
|
||||
packageName: "echo_elevue"
|
||||
servicePath: "."
|
||||
@@ -628,17 +712,17 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
echo_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "echo_elevue"
|
||||
containerName: "echo_elevue"
|
||||
packageName: "echo_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
echo_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "echo_antdvue"
|
||||
packageName: "echo_antdvue"
|
||||
servicePath: "."
|
||||
@@ -649,12 +733,33 @@ serviceConfig:
|
||||
composeFile: "golang-docker-compose"
|
||||
echo_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "echo_antdvue"
|
||||
containerName: "echo_antdvue"
|
||||
packageName: "echo_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
echo_naivevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.27.2"
|
||||
containerName: "echo_naivevue"
|
||||
packageName: "echo_naivevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "echo_naivevue"
|
||||
port: "8059"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
echo_naivevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.18.0"
|
||||
deployMethod: "static"
|
||||
projectName: "echo_naivevue"
|
||||
containerName: "echo_naivevue"
|
||||
packageName: "echo_naivevue.tar.gz"
|
||||
servicePath: "ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
|
||||
|
||||
@@ -0,0 +1,471 @@
|
||||
# ==============================================================================
|
||||
# 通用配置块 - 包含所有环境共享的配置项
|
||||
# ==============================================================================
|
||||
common:
|
||||
# 镜像仓库配置 - 定义不同的容器镜像仓库
|
||||
registrys:
|
||||
# 默认仓库配置 - 内部私有仓库
|
||||
default:
|
||||
# 内部私有仓库地址 - 企业内部部署的Harbor或Registry地址
|
||||
registry: "192.168.10.102:8001"
|
||||
# Jenkins凭证ID - 用于仓库认证的凭据ID
|
||||
registryCredential: "xiaomayi-hub-credentials"
|
||||
# 仓库中的项目/命名空间名称 - 镜像存放的项目空间
|
||||
registryProject: "xiaomayi"
|
||||
# 仓库类型 - 仓库的技术类型(harbor、acr、dockerhub等)
|
||||
registryType: "harbor"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "jdk:17.0.16-ubuntu22-dos"
|
||||
|
||||
# 阿里云ACR仓库配置 - 云上仓库,用于生产环境或特定场景
|
||||
aliyun:
|
||||
# 阿里云VPC内网地址 - 阿里云容器镜像服务的VPC内网地址,网络性能更优
|
||||
registry: "registry-vpc.cn-hangzhou.aliyuncs.com"
|
||||
# 阿里云仓库认证凭证 - 阿里云访问凭据的Jenkins ID
|
||||
registryCredential: "aliyun-hub-credentials"
|
||||
# 阿里云仓库项目名称 - 阿里云ACR中的命名空间
|
||||
registryProject: "xiaomayi-base"
|
||||
# 仓库类型 - 阿里云容器镜像服务
|
||||
registryType: "acr"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "jdk:17.0.16-ubuntu22-dos"
|
||||
# Docker Hub配置 - 官方Docker仓库,用于公开镜像
|
||||
dockerhub:
|
||||
# Docker Hub地址 - 官方Docker仓库地址
|
||||
registry: "index.docker.io"
|
||||
# Docker Hub认证凭证 - Docker Hub账号的Jenkins凭据ID
|
||||
registryCredential: "dockerhub-credentials"
|
||||
# Docker Hub项目名称 - 用户名或组织名
|
||||
registryProject: "xiaomayi-base"
|
||||
# 仓库类型 - 官方Docker仓库
|
||||
registryType: "dockerhub"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "jdk:17.0.16-ubuntu22-dos"
|
||||
|
||||
# 钉钉消息
|
||||
dingtalk:
|
||||
# 凭证ID - Jenkins中存储的DingTalk认证凭据ID
|
||||
credentialsId: "jenkins-dingtalk-robot"
|
||||
|
||||
# 通知配置 - 构建结果通知设置
|
||||
notification:
|
||||
# 构建成功通知配置
|
||||
success:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知
|
||||
#sms: ["15295504151"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知
|
||||
slack: false
|
||||
# 构建失败通知配置
|
||||
failure:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知
|
||||
# sms: ["15295504151"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知
|
||||
slack: false
|
||||
# 构建被中止通知
|
||||
aborted:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知
|
||||
#sms: ["15295504151"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知
|
||||
slack: false
|
||||
# 构建不稳定通知配置
|
||||
unstable:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
|
||||
# 构建策略 - 构建过程的策略配置
|
||||
buildStrategy:
|
||||
retryCount: 3 # 构建失败重试次数
|
||||
timeoutMinutes: 60 # 构建超时时间(分钟)
|
||||
cleanupWorkspace: true # 构建完成后是否清理工作空间
|
||||
enableCaching: true # 是否启用Docker构建缓存
|
||||
|
||||
# 部署相关配置
|
||||
deployScript: "deploy_env.sh" # 部署执行的shell脚本文件名
|
||||
deployPath: "/usr/local/docker/easygoadmin-web" # 目标服务器上的应用部署根路径
|
||||
|
||||
# ==============================================================================
|
||||
# 短信服务配置
|
||||
# 描述: 定义短信通知服务的相关配置,支持多种短信服务商和模板配置
|
||||
# ==============================================================================
|
||||
|
||||
# 短信服务提供商配置
|
||||
sms:
|
||||
# 短信服务商 - 指定使用的短信服务平台
|
||||
# 可选值:
|
||||
# - 'aliyun': 阿里云短信服务(推荐)
|
||||
# - 'tencent': 腾讯云短信服务
|
||||
# - 'yunpian': 云片短信服务
|
||||
provider: 'aliyun'
|
||||
|
||||
# Jenkins凭据ID - 存储短信服务认证信息的Jenkins凭据标识
|
||||
# 凭据内容格式建议为JSON或key=value格式,包含accessKeyId/accessKeySecret等认证信息
|
||||
credentialsId: 'jenkins-aliyun-credentials'
|
||||
|
||||
# 默认短信签名 - 在短信开头显示的签名内容
|
||||
# 需要先在短信服务平台申请并通过审核的签名
|
||||
signName: '小蚂蚁云'
|
||||
|
||||
# ==============================================================================
|
||||
# 短信模板配置 - 定义不同场景下的短信模板
|
||||
# 每个模板需要先在短信服务平台创建并通过审核
|
||||
# ==============================================================================
|
||||
templates:
|
||||
# --------------------------------------------------------------------------
|
||||
# 构建成功短信模板配置
|
||||
# 用途: 当构建任务成功完成时发送的通知短信
|
||||
# --------------------------------------------------------------------------
|
||||
build_success:
|
||||
# 模板代码 - 短信服务平台审核通过的模板ID
|
||||
# 阿里云: SMS_开头的一串数字字母组合
|
||||
# 腾讯云: 纯数字模板ID
|
||||
# 云片: 长整型数字模板ID
|
||||
templateCode: 'SMS_231440070'
|
||||
|
||||
# 模板签名 - 可覆盖默认签名,使用特定的签名
|
||||
# 如果未设置,则使用顶层的默认签名
|
||||
signName: '小蚂蚁云'
|
||||
|
||||
# 模板变量说明(在短信平台配置时定义):
|
||||
# 通常包含: project, branch, status, duration, time 等变量
|
||||
# 示例模板内容: "您的项目${project}构建${status},耗时${duration},时间${time}"
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 构建失败短信模板配置
|
||||
# 用途: 当构建任务失败时发送的告警短信
|
||||
# --------------------------------------------------------------------------
|
||||
build_failure:
|
||||
# 模板代码 - 失败通知的专用模板ID
|
||||
templateCode: 'SMS_231440070'
|
||||
|
||||
# 模板签名 - 失败通知使用的签名
|
||||
signName: '小蚂蚁云'
|
||||
|
||||
# 模板变量说明:
|
||||
# 通常包含: project, branch, status, duration, error, time 等变量
|
||||
# 示例模板内容: "警告:项目${project}构建${status},错误:${error},时间${time}"
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 部署通知短信模板(示例配置,可根据需要启用)
|
||||
# 用途: 当应用部署完成时发送的通知短信
|
||||
# --------------------------------------------------------------------------
|
||||
# deployment:
|
||||
# templateCode: 'SMS_DEPLOY_001'
|
||||
# signName: '小蚂蚁云'
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 系统告警短信模板(示例配置,可根据需要启用)
|
||||
# 用途: 当系统发生异常或达到告警阈值时发送的短信
|
||||
# --------------------------------------------------------------------------
|
||||
# alert:
|
||||
# templateCode: 'SMS_ALERT_001'
|
||||
# signName: '小蚂蚁云'
|
||||
|
||||
# 环境配置文件 - 定义不同环境的特定配置
|
||||
profiles:
|
||||
# --------------------------------------------------------------------------
|
||||
# 开发环境配置 - 用于开发测试,部署频率高,配置相对宽松
|
||||
# --------------------------------------------------------------------------
|
||||
dev:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S202服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "dev" # Spring Boot激活的配置文件环境
|
||||
JAVA_OPTS: "-Xms512m -Xmx512m" # JVM内存参数:初始堆512MB,最大堆512MB
|
||||
LOG_LEVEL: "INFO" # 日志级别:INFO
|
||||
TZ: "Asia/Shanghai" # 时区设置:亚洲/上海
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "rolling" # 部署策略:rolling-滚动部署
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 2 # 最大并行部署服务器数量
|
||||
retryAttempts: 3 # 部署失败重试次数
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 测试环境配置 - 用于集成测试,配置接近生产环境
|
||||
# --------------------------------------------------------------------------
|
||||
test:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "test" # 测试环境配置文件
|
||||
JAVA_OPTS: "-Xms1g -Xmx1g" # JVM内存:1GB堆内存
|
||||
LOG_LEVEL: "INFO"
|
||||
TZ: "Asia/Shanghai"
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "rolling"
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 1 # 测试环境串行部署,便于问题排查
|
||||
retryAttempts: 2
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 用户验收测试环境配置 - 模拟生产环境,用于最终验收测试
|
||||
# --------------------------------------------------------------------------
|
||||
uat:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "uat" # UAT环境配置文件
|
||||
JAVA_OPTS: "-Xms2g -Xmx2g" # JVM内存:2GB堆内存
|
||||
LOG_LEVEL: "INFO"
|
||||
TZ: "Asia/Shanghai"
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "blue-green" # 蓝绿部署策略,减少停机时间
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 1
|
||||
retryAttempts: 1 # UAT环境不重试,立即反馈问题
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 生产环境配置 - 线上真实环境,配置最为严格
|
||||
# --------------------------------------------------------------------------
|
||||
prod:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@111.229.35.227" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 13522 # SSH端口号
|
||||
serverName: "S210服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@111.229.35.227" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 13522 # SSH端口号
|
||||
serverName: "S220服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "prod" # 生产环境配置文件
|
||||
JAVA_OPTS: "-Xms4g -Xmx4g" # JVM内存:4GB堆内存
|
||||
LOG_LEVEL: "WARN" # 生产环境使用WARN级别日志,减少日志量
|
||||
TZ: "Asia/Shanghai"
|
||||
GC_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=200" # GC调优参数:使用G1垃圾回收器
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "canary" # 金丝雀部署策略,逐步发布降低风险
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 1 # 生产环境单台串行部署,确保稳定性
|
||||
retryAttempts: 3 # 部署失败重试次数
|
||||
canaryPercentage: 25 # 首批金丝雀发布比例(25%)
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckEnabled: true # 启用健康检查
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckRetries: 5 # 健康检查5次重试
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# 回滚配置
|
||||
rollbackEnabled: true # 启用自动回滚
|
||||
rollbackOnFailure: true # 部署失败时自动回滚
|
||||
rollbackTimeout: 300 # 回滚操作超时时间(300秒=5分钟)
|
||||
|
||||
# # 通知配置 - 生产环境部署状态通知
|
||||
# notifications:
|
||||
# slackChannel: "#prod-deployments" # Slack通知频道
|
||||
# email: "xiaomayicloud@163.com" # 主要邮件通知地址
|
||||
# onSuccess: true # 成功时发送通知
|
||||
# onFailure: true # 失败时发送通知
|
||||
# onStart: true # 开始部署时发送通知
|
||||
# recipients: # 额外通知人员邮件列表
|
||||
# - "devops@xiaomayi.com"
|
||||
# - "product-manager@xiaomayi.com"
|
||||
|
||||
# ==============================================================================
|
||||
# 分支构建配置 - 定义不同Git分支的构建参数
|
||||
# ==============================================================================
|
||||
branchConfig:
|
||||
# 开发分支配置
|
||||
dev:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置 - Java应用编译和打包
|
||||
maven:
|
||||
mavenSet: "nexus-maven-dev" # Maven配置集名称
|
||||
skipTests: true # 生产构建不跳过测试
|
||||
goals: "clean package" # Maven执行目标
|
||||
options: "" # Maven选项参数
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 测试分支配置
|
||||
test:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置 - Java应用编译和打包
|
||||
maven:
|
||||
mavenSet: "nexus-maven-test" # Maven配置集名称
|
||||
skipTests: true # 生产构建不跳过测试
|
||||
goals: "clean package" # Maven执行目标
|
||||
options: "" # Maven选项参数
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 主分支配置(生产环境)
|
||||
master:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置 - Java应用编译和打包
|
||||
maven:
|
||||
mavenSet: "nexus-maven-dev" # Maven配置集名称
|
||||
skipTests: false # 生产构建不跳过测试
|
||||
goals: "clean package" # Maven执行目标
|
||||
options: "" # Maven选项参数
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# 服务配置 - 定义每个微服务的特定配置
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
# 后台系统
|
||||
easygoadmin-admin:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "easygoadmin-admin"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-admin"
|
||||
jarName: "xiaomayi-admin.jar"
|
||||
port: "8081"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "easygoadmin-web-docker-compose"
|
||||
easygoadmin-admin-ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "easygoadmin-admin-ui"
|
||||
packageName: "easygoadmin-admin-ui.tar.gz"
|
||||
servicePath: "xiaomayi-ui"
|
||||
containerName: "easygoadmin-admin-ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "easygoadmin-web-docker-compose"
|
||||
# 前台网站
|
||||
easygoadmin-web:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "easygoadmin-web"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-web"
|
||||
jarName: "xiaomayi-web.jar"
|
||||
port: "8082"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "easygoadmin-web-docker-compose"
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"branchConfig": {
|
||||
"master": {
|
||||
"PIP_SET": "nexus-pip-prod",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.111",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"PIP_SET": "nexus-pip-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.114",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"test": {
|
||||
"PIP_SET": "nexus-pip-test",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.111",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"thinkphp6_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp6_layui",
|
||||
"packageName": "thinkphp6_layui.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp6_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"thinkphp6_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp6_elevue",
|
||||
"packageName": "thinkphp6_elevue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp6_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"thinkphp6_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp6_antdvue",
|
||||
"packageName": "thinkphp6_antdvue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp6_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"thinkphp6_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp6_naivevue",
|
||||
"packageName": "thinkphp6_naivevue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp6_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"thinkphp8_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp8_layui",
|
||||
"packageName": "thinkphp8_layui.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp8_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"thinkphp8_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp8_elevue",
|
||||
"packageName": "thinkphp8_elevue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp8_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"thinkphp8_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp8_antdvue",
|
||||
"packageName": "thinkphp8_antdvue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp8_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"thinkphp8_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "thinkphp8_naivevue",
|
||||
"packageName": "thinkphp8_naivevue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_ThinkPhp8_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"laravel13_layui_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "laravel13_layui",
|
||||
"packageName": "laravel13_layui.tar.gz",
|
||||
"serviceName": "RXThinkCMF_Laravel13_Layui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"laravel13_elevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "laravel13_elevue",
|
||||
"packageName": "laravel13_elevue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_Laravel13_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"laravel13_antdvue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "laravel13_antdvue",
|
||||
"packageName": "laravel13_antdvue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_Laravel13_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"laravel13_naivevue_doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "laravel13_naivevue",
|
||||
"packageName": "laravel13_naivevue.tar.gz",
|
||||
"serviceName": "RXThinkCMF_Laravel13_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,471 @@
|
||||
# ==============================================================================
|
||||
# 通用配置块 - 包含所有环境共享的配置项
|
||||
# ==============================================================================
|
||||
common:
|
||||
# 镜像仓库配置 - 定义不同的容器镜像仓库
|
||||
registrys:
|
||||
# 默认仓库配置 - 内部私有仓库
|
||||
default:
|
||||
# 内部私有仓库地址 - 企业内部部署的Harbor或Registry地址
|
||||
registry: "192.168.10.102:8001"
|
||||
# Jenkins凭证ID - 用于仓库认证的凭据ID
|
||||
registryCredential: "xiaomayi-hub-credentials"
|
||||
# 仓库中的项目/命名空间名称 - 镜像存放的项目空间
|
||||
registryProject: "xiaomayi"
|
||||
# 仓库类型 - 仓库的技术类型(harbor、acr、dockerhub等)
|
||||
registryType: "harbor"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "jdk:17.0.16-ubuntu22-dos"
|
||||
|
||||
# 阿里云ACR仓库配置 - 云上仓库,用于生产环境或特定场景
|
||||
aliyun:
|
||||
# 阿里云VPC内网地址 - 阿里云容器镜像服务的VPC内网地址,网络性能更优
|
||||
registry: "registry-vpc.cn-hangzhou.aliyuncs.com"
|
||||
# 阿里云仓库认证凭证 - 阿里云访问凭据的Jenkins ID
|
||||
registryCredential: "aliyun-hub-credentials"
|
||||
# 阿里云仓库项目名称 - 阿里云ACR中的命名空间
|
||||
registryProject: "xiaomayi-base"
|
||||
# 仓库类型 - 阿里云容器镜像服务
|
||||
registryType: "acr"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "jdk:17.0.16-ubuntu22-dos"
|
||||
# Docker Hub配置 - 官方Docker仓库,用于公开镜像
|
||||
dockerhub:
|
||||
# Docker Hub地址 - 官方Docker仓库地址
|
||||
registry: "index.docker.io"
|
||||
# Docker Hub认证凭证 - Docker Hub账号的Jenkins凭据ID
|
||||
registryCredential: "dockerhub-credentials"
|
||||
# Docker Hub项目名称 - 用户名或组织名
|
||||
registryProject: "xiaomayi-base"
|
||||
# 仓库类型 - 官方Docker仓库
|
||||
registryType: "dockerhub"
|
||||
# 应用部署基础镜像
|
||||
registryImage: "jdk:17.0.16-ubuntu22-dos"
|
||||
|
||||
# 钉钉消息
|
||||
dingtalk:
|
||||
# 凭证ID - Jenkins中存储的DingTalk认证凭据ID
|
||||
credentialsId: "jenkins-dingtalk-robot"
|
||||
|
||||
# 通知配置 - 构建结果通知设置
|
||||
notification:
|
||||
# 构建成功通知配置
|
||||
success:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知
|
||||
#sms: ["15295504151"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知
|
||||
slack: false
|
||||
# 构建失败通知配置
|
||||
failure:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知
|
||||
# sms: ["15295504151"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知
|
||||
slack: false
|
||||
# 构建被中止通知
|
||||
aborted:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知
|
||||
#sms: ["15295504151"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知
|
||||
slack: false
|
||||
# 构建不稳定通知配置
|
||||
unstable:
|
||||
# 通知渠道
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
|
||||
# 构建策略 - 构建过程的策略配置
|
||||
buildStrategy:
|
||||
retryCount: 3 # 构建失败重试次数
|
||||
timeoutMinutes: 60 # 构建超时时间(分钟)
|
||||
cleanupWorkspace: true # 构建完成后是否清理工作空间
|
||||
enableCaching: true # 是否启用Docker构建缓存
|
||||
|
||||
# 部署相关配置
|
||||
deployScript: "deploy_env.sh" # 部署执行的shell脚本文件名
|
||||
deployPath: "/usr/local/docker/rxthinkcmf-web" # 目标服务器上的应用部署根路径
|
||||
|
||||
# ==============================================================================
|
||||
# 短信服务配置
|
||||
# 描述: 定义短信通知服务的相关配置,支持多种短信服务商和模板配置
|
||||
# ==============================================================================
|
||||
|
||||
# 短信服务提供商配置
|
||||
sms:
|
||||
# 短信服务商 - 指定使用的短信服务平台
|
||||
# 可选值:
|
||||
# - 'aliyun': 阿里云短信服务(推荐)
|
||||
# - 'tencent': 腾讯云短信服务
|
||||
# - 'yunpian': 云片短信服务
|
||||
provider: 'aliyun'
|
||||
|
||||
# Jenkins凭据ID - 存储短信服务认证信息的Jenkins凭据标识
|
||||
# 凭据内容格式建议为JSON或key=value格式,包含accessKeyId/accessKeySecret等认证信息
|
||||
credentialsId: 'jenkins-aliyun-credentials'
|
||||
|
||||
# 默认短信签名 - 在短信开头显示的签名内容
|
||||
# 需要先在短信服务平台申请并通过审核的签名
|
||||
signName: '小蚂蚁云'
|
||||
|
||||
# ==============================================================================
|
||||
# 短信模板配置 - 定义不同场景下的短信模板
|
||||
# 每个模板需要先在短信服务平台创建并通过审核
|
||||
# ==============================================================================
|
||||
templates:
|
||||
# --------------------------------------------------------------------------
|
||||
# 构建成功短信模板配置
|
||||
# 用途: 当构建任务成功完成时发送的通知短信
|
||||
# --------------------------------------------------------------------------
|
||||
build_success:
|
||||
# 模板代码 - 短信服务平台审核通过的模板ID
|
||||
# 阿里云: SMS_开头的一串数字字母组合
|
||||
# 腾讯云: 纯数字模板ID
|
||||
# 云片: 长整型数字模板ID
|
||||
templateCode: 'SMS_231440070'
|
||||
|
||||
# 模板签名 - 可覆盖默认签名,使用特定的签名
|
||||
# 如果未设置,则使用顶层的默认签名
|
||||
signName: '小蚂蚁云'
|
||||
|
||||
# 模板变量说明(在短信平台配置时定义):
|
||||
# 通常包含: project, branch, status, duration, time 等变量
|
||||
# 示例模板内容: "您的项目${project}构建${status},耗时${duration},时间${time}"
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 构建失败短信模板配置
|
||||
# 用途: 当构建任务失败时发送的告警短信
|
||||
# --------------------------------------------------------------------------
|
||||
build_failure:
|
||||
# 模板代码 - 失败通知的专用模板ID
|
||||
templateCode: 'SMS_231440070'
|
||||
|
||||
# 模板签名 - 失败通知使用的签名
|
||||
signName: '小蚂蚁云'
|
||||
|
||||
# 模板变量说明:
|
||||
# 通常包含: project, branch, status, duration, error, time 等变量
|
||||
# 示例模板内容: "警告:项目${project}构建${status},错误:${error},时间${time}"
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 部署通知短信模板(示例配置,可根据需要启用)
|
||||
# 用途: 当应用部署完成时发送的通知短信
|
||||
# --------------------------------------------------------------------------
|
||||
# deployment:
|
||||
# templateCode: 'SMS_DEPLOY_001'
|
||||
# signName: '小蚂蚁云'
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 系统告警短信模板(示例配置,可根据需要启用)
|
||||
# 用途: 当系统发生异常或达到告警阈值时发送的短信
|
||||
# --------------------------------------------------------------------------
|
||||
# alert:
|
||||
# templateCode: 'SMS_ALERT_001'
|
||||
# signName: '小蚂蚁云'
|
||||
|
||||
# 环境配置文件 - 定义不同环境的特定配置
|
||||
profiles:
|
||||
# --------------------------------------------------------------------------
|
||||
# 开发环境配置 - 用于开发测试,部署频率高,配置相对宽松
|
||||
# --------------------------------------------------------------------------
|
||||
dev:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S202服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "dev" # Spring Boot激活的配置文件环境
|
||||
JAVA_OPTS: "-Xms512m -Xmx512m" # JVM内存参数:初始堆512MB,最大堆512MB
|
||||
LOG_LEVEL: "INFO" # 日志级别:INFO
|
||||
TZ: "Asia/Shanghai" # 时区设置:亚洲/上海
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "rolling" # 部署策略:rolling-滚动部署
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 2 # 最大并行部署服务器数量
|
||||
retryAttempts: 3 # 部署失败重试次数
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 测试环境配置 - 用于集成测试,配置接近生产环境
|
||||
# --------------------------------------------------------------------------
|
||||
test:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "test" # 测试环境配置文件
|
||||
JAVA_OPTS: "-Xms1g -Xmx1g" # JVM内存:1GB堆内存
|
||||
LOG_LEVEL: "INFO"
|
||||
TZ: "Asia/Shanghai"
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "rolling"
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 1 # 测试环境串行部署,便于问题排查
|
||||
retryAttempts: 2
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 用户验收测试环境配置 - 模拟生产环境,用于最终验收测试
|
||||
# --------------------------------------------------------------------------
|
||||
uat:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "uat" # UAT环境配置文件
|
||||
JAVA_OPTS: "-Xms2g -Xmx2g" # JVM内存:2GB堆内存
|
||||
LOG_LEVEL: "INFO"
|
||||
TZ: "Asia/Shanghai"
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "blue-green" # 蓝绿部署策略,减少停机时间
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 1
|
||||
retryAttempts: 1 # UAT环境不重试,立即反馈问题
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 生产环境配置 - 线上真实环境,配置最为严格
|
||||
# --------------------------------------------------------------------------
|
||||
prod:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# 服务器列表 - 部署目标服务器
|
||||
servers:
|
||||
- serverIP: "esxi@47.103.201.89" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 18922 # SSH端口号
|
||||
serverName: "S210服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@47.103.201.89" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 18922 # SSH端口号
|
||||
serverName: "S220服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
SPRING_PROFILES_ACTIVE: "prod" # 生产环境配置文件
|
||||
JAVA_OPTS: "-Xms4g -Xmx4g" # JVM内存:4GB堆内存
|
||||
LOG_LEVEL: "WARN" # 生产环境使用WARN级别日志,减少日志量
|
||||
TZ: "Asia/Shanghai"
|
||||
GC_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=200" # GC调优参数:使用G1垃圾回收器
|
||||
|
||||
# 部署策略配置
|
||||
deploymentStrategy: "canary" # 金丝雀部署策略,逐步发布降低风险
|
||||
deploymentTimeout: 3600 # 整体部署超时时间(3600秒=1小时)
|
||||
maxParallel: 1 # 生产环境单台串行部署,确保稳定性
|
||||
retryAttempts: 3 # 部署失败重试次数
|
||||
canaryPercentage: 25 # 首批金丝雀发布比例(25%)
|
||||
|
||||
# 健康检查配置
|
||||
healthCheckEnabled: true # 启用健康检查
|
||||
healthCheckPath: "/actuator/health" # 健康检查端点
|
||||
healthCheckTimeout: 180 # 健康检查超时时间(180秒=3分钟)
|
||||
healthCheckRetries: 5 # 健康检查5次重试
|
||||
healthCheckInterval: 10 # 健康检查间隔(10秒)
|
||||
successThreshold: 3 # 成功阈值(连续3次检查成功才算健康)
|
||||
|
||||
# 回滚配置
|
||||
rollbackEnabled: true # 启用自动回滚
|
||||
rollbackOnFailure: true # 部署失败时自动回滚
|
||||
rollbackTimeout: 300 # 回滚操作超时时间(300秒=5分钟)
|
||||
|
||||
# # 通知配置 - 生产环境部署状态通知
|
||||
# notifications:
|
||||
# slackChannel: "#prod-deployments" # Slack通知频道
|
||||
# email: "xiaomayicloud@163.com" # 主要邮件通知地址
|
||||
# onSuccess: true # 成功时发送通知
|
||||
# onFailure: true # 失败时发送通知
|
||||
# onStart: true # 开始部署时发送通知
|
||||
# recipients: # 额外通知人员邮件列表
|
||||
# - "devops@xiaomayi.com"
|
||||
# - "product-manager@xiaomayi.com"
|
||||
|
||||
# ==============================================================================
|
||||
# 分支构建配置 - 定义不同Git分支的构建参数
|
||||
# ==============================================================================
|
||||
branchConfig:
|
||||
# 开发分支配置
|
||||
dev:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置 - Java应用编译和打包
|
||||
maven:
|
||||
mavenSet: "nexus-maven-dev" # Maven配置集名称
|
||||
skipTests: true # 生产构建不跳过测试
|
||||
goals: "clean package" # Maven执行目标
|
||||
options: "" # Maven选项参数
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 测试分支配置
|
||||
test:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置 - Java应用编译和打包
|
||||
maven:
|
||||
mavenSet: "nexus-maven-test" # Maven配置集名称
|
||||
skipTests: true # 生产构建不跳过测试
|
||||
goals: "clean package" # Maven执行目标
|
||||
options: "" # Maven选项参数
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 主分支配置(生产环境)
|
||||
master:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置 - Java应用编译和打包
|
||||
maven:
|
||||
mavenSet: "nexus-maven-dev" # Maven配置集名称
|
||||
skipTests: false # 生产构建不跳过测试
|
||||
goals: "clean package" # Maven执行目标
|
||||
options: "" # Maven选项参数
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# 服务配置 - 定义每个微服务的特定配置
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
# 后台系统
|
||||
rxthinkcmf-admin:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "rxthinkcmf-admin"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-admin"
|
||||
jarName: "xiaomayi-admin.jar"
|
||||
port: "8081"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "rxthinkcmf-web-docker-compose"
|
||||
rxthinkcmf-admin-ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "rxthinkcmf-admin-ui"
|
||||
packageName: "rxthinkcmf-admin-ui.tar.gz"
|
||||
servicePath: "xiaomayi-ui"
|
||||
containerName: "rxthinkcmf-admin-ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "rxthinkcmf-web-docker-compose"
|
||||
# 前台网站
|
||||
rxthinkcmf-web:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "rxthinkcmf-web"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-web"
|
||||
jarName: "xiaomayi-web.jar"
|
||||
port: "8082"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "rxthinkcmf-web-docker-compose"
|
||||
@@ -0,0 +1,4 @@
|
||||
DOCKER_REGISTRY_URL="manage.harbor.djangoadmin.cn"
|
||||
DOCKER_REGISTRYURL_NAMESPACE="xiaomayi"
|
||||
DOCKER_USERNAME="deploy"
|
||||
DOCKER_PASSWORD="Harbor20240330"
|
||||
Reference in New Issue
Block a user