Compare commits
No commits in common. "73bcfc8e44d140475275f46d7b645c03685bdfcc" and "43a1a8831b43b00b928f5d996e9a4def5c0e9e45" have entirely different histories.
73bcfc8e44
...
43a1a8831b
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
.svn
|
||||
.idea
|
||||
.git
|
||||
2
LICENSE
2
LICENSE
@ -58,7 +58,7 @@ APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
|
||||
|
||||
Copyright 2026 devops
|
||||
Copyright 2025 cicd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
# jenkins-pipeline-files
|
||||
|
||||
enkins Pipeline 脚本集中管理仓库。用于存放各项目的 Jenkinsfile 以及相关的声明式、脚本化流水线定义。通过集中管理便于版本控制、评审与复用,支持多分支触发、构建参数化、阶段化发布等 CI/CD 场景。
|
||||
基于 Jenkins 构建企业级 CI/CD 流水线平台,实现从代码提交到生产部署的全流程自动化,建立完善的 DevOps 运维体系。通过集中式配置文件仓库管理,确保环境一致性,提升软件交付效率与质量。
|
||||
389
compose-file/docker-compose-consul.yml
Normal file
389
compose-file/docker-compose-consul.yml
Normal file
@ -0,0 +1,389 @@
|
||||
version: '3.7'
|
||||
|
||||
# 应用服务
|
||||
services:
|
||||
# Nacos服务
|
||||
xiaomayi-nacoss:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-nacoss:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-nacoss
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8848:8848
|
||||
- 9848:9848
|
||||
- 9849:9849
|
||||
environment:
|
||||
- MYSQL_DB=xiaomayi.nacos
|
||||
- MYSQL_PORT=3311
|
||||
- MYSQL_HOST=192.168.10.101
|
||||
- MYSQL_USER=root
|
||||
- MYSQL_PWD=LlWx1qaz2wsx3edc#$^
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 网关服务
|
||||
xiaomayi-gateway:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-gateway:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-gateway
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9010:9010
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 认证服务
|
||||
xiaomayi-auth:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-auth:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-auth
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9020:9020
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# Seata服务
|
||||
xiaomayi-seatas:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-seatas:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-seatas
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 7091:7091
|
||||
- 8091:8091
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
environment:
|
||||
- SEATA_IP=192.168.10.115
|
||||
- SEATA_PORT=8091
|
||||
- STORE_MODE=file
|
||||
- SEATA_CONFIG_NAME=file:/opt/apps/conf/registry.conf
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 监控服务
|
||||
xiaomayi-monitor:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-monitor:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-monitor
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9000:9000
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端应用服务
|
||||
xiaomayi-admin-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-admin-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-admin-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9030:9030
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 网站应用服务
|
||||
xiaomayi-web-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-web-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-web-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9031:9031
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 客户端应用服务
|
||||
xiaomayi-uniapp-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-uniapp-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-uniapp-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9032:9032
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端系统服务
|
||||
xiaomayi-system-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-system-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-system-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9040:9040
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端用户服务
|
||||
xiaomayi-user-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-user-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-user-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9042:9042
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端CMS服务
|
||||
xiaomayi-cms-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-cms-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-cms-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9043:9043
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 订单服务
|
||||
xiaomayi-order-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-order-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-order-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9042:9042
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 产品服务
|
||||
xiaomayi-product-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-product-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-product-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9046:9046
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端生成器服务
|
||||
xiaomayi-generator:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-generator:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-generator
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9041:9041
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 任务调度
|
||||
xiaomayi-job:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-job:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-job
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9044:9044
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
|
||||
|
||||
389
compose-file/docker-compose-nacos.yml
Normal file
389
compose-file/docker-compose-nacos.yml
Normal file
@ -0,0 +1,389 @@
|
||||
version: '3.7'
|
||||
|
||||
# 应用服务
|
||||
services:
|
||||
# Nacos服务
|
||||
xiaomayi-nacoss:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-nacoss:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-nacoss
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8848:8848
|
||||
- 9848:9848
|
||||
- 9849:9849
|
||||
environment:
|
||||
- MYSQL_DB=xiaomayi.nacos
|
||||
- MYSQL_PORT=3311
|
||||
- MYSQL_HOST=192.168.10.101
|
||||
- MYSQL_USER=root
|
||||
- MYSQL_PWD=LlWx1qaz2wsx3edc#$^
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 网关服务
|
||||
xiaomayi-gateway:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-gateway:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-gateway
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9010:9010
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 认证服务
|
||||
xiaomayi-auth:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-auth:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-auth
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9020:9020
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# Seata服务
|
||||
xiaomayi-seatas:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-seatas:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-seatas
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 7091:7091
|
||||
- 8091:8091
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
environment:
|
||||
- SEATA_IP=192.168.10.113
|
||||
- SEATA_PORT=8091
|
||||
- STORE_MODE=file
|
||||
- SEATA_CONFIG_NAME=file:/opt/apps/conf/registry.conf
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 监控服务
|
||||
xiaomayi-monitor:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-monitor:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-monitor
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9000:9000
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端应用服务
|
||||
xiaomayi-admin-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-admin-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-admin-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9030:9030
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 网站应用服务
|
||||
xiaomayi-web-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-web-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-web-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9031:9031
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 客户端应用服务
|
||||
xiaomayi-uniapp-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-uniapp-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-uniapp-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9032:9032
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端系统服务
|
||||
xiaomayi-system-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-system-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-system-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9040:9040
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端用户服务
|
||||
xiaomayi-user-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-user-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-user-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9042:9042
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端CMS服务
|
||||
xiaomayi-cms-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-cms-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-cms-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9043:9043
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 订单服务
|
||||
xiaomayi-order-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-order-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-order-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9042:9042
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 产品服务
|
||||
xiaomayi-product-biz:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-product-biz:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-product-biz
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9046:9046
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 后端生成器服务
|
||||
xiaomayi-generator:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-generator:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-generator
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9041:9041
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
- $PWD/upload:/opt/apps/upload
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
# 任务调度
|
||||
xiaomayi-job:
|
||||
# 镜像
|
||||
image: 192.168.10.102:8001/xiaomayi/xiaomayi-job:${VERSION:-latest}
|
||||
# 容器名
|
||||
container_name: xiaomayi-job
|
||||
# 重启方式
|
||||
restart: always
|
||||
# 网络模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 9044:9044
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts:ro
|
||||
# 发布
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2'
|
||||
memory: 1.5G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 500M
|
||||
|
||||
|
||||
484
compose-file/golang-docker-compose.yml
Normal file
484
compose-file/golang-docker-compose.yml
Normal file
@ -0,0 +1,484 @@
|
||||
version: '3.7'
|
||||
|
||||
# 应用服务
|
||||
services:
|
||||
# 应用服务
|
||||
gin_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
#build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8010:8010
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
gin_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8013:8013
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
gin_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8016:8016
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
beego_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8030:8030
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
beego_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8033:8033
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
beego_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8036:8036
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
goframe_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8020:8020
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
goframe_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8023:8023
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
goframe_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8026:8026
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
iris_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8040:8040
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
iris_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8043:8043
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
iris_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8046:8046
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
echo_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8050:8050
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
echo_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8053:8053
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
echo_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/easygoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 构建镜像
|
||||
# build:
|
||||
# context: ./
|
||||
# dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8056:8056
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/app/public/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
329
compose-file/python-docker-compose.yml
Normal file
329
compose-file/python-docker-compose.yml
Normal file
@ -0,0 +1,329 @@
|
||||
version: '3.7'
|
||||
|
||||
# 应用服务
|
||||
services:
|
||||
# 网关服务
|
||||
django_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8010:8010
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
django_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8013:8013
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
django_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8016:8016
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 网关服务
|
||||
flask_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8020:8020
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
flask_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8023:8023
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
flask_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8026:8026
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
fastapi_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8030:8030
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
fastapi_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8033:8033
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
fastapi_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8036:8036
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 应用服务
|
||||
tornado_layui:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8040:8040
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
tornado_elevue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8043:8043
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# 后端服务
|
||||
tornado_antdvue:
|
||||
# 镜像名称
|
||||
image: ${DOCKER_REGISTRY_URL}/djangoadmin/${SERVER_NAME}:${VERSION:-latest}
|
||||
# 容器名称
|
||||
container_name: ${SERVER_NAME}
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8046:8046
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- $PWD/${SERVER_NAME}/uploads:/data/apps/uploads
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
121
compose-file/xiaomayi-web-docker-compose.yml
Normal file
121
compose-file/xiaomayi-web-docker-compose.yml
Normal file
@ -0,0 +1,121 @@
|
||||
# Docker Compose 文件版本定义
|
||||
# 3.7 版本支持丰富的部署配置和资源限制功能
|
||||
version: '3.7'
|
||||
|
||||
# 服务定义块,包含所有需要部署的容器服务
|
||||
services:
|
||||
# 后端服务 - 小蚂蚁管理系统后端
|
||||
xiaomayi-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内存
|
||||
|
||||
# 前端服务 - 小蚂蚁管理系统前端
|
||||
xiaomayi-web2:
|
||||
# 镜像地址:前端服务的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
|
||||
596
config-file/djangoadminConfig.yml
Normal file
596
config-file/djangoadminConfig.yml
Normal file
@ -0,0 +1,596 @@
|
||||
# ==============================================================================
|
||||
# 通用配置块 - 包含所有环境共享的配置项
|
||||
# ==============================================================================
|
||||
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: "python:3.9.13-rocky8-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: "python:3.9.13-rocky8-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: "python:3.9.13-rocky8-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: "/opt/apps" # 目标服务器上的应用部署根路径
|
||||
|
||||
# ==============================================================================
|
||||
# 短信服务配置
|
||||
# 描述: 定义短信通知服务的相关配置,支持多种短信服务商和模板配置
|
||||
# ==============================================================================
|
||||
|
||||
# 短信服务提供商配置
|
||||
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.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S202服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
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.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
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.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
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@192.168.10.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S210服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.109" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S220服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
TZ: "Asia/Shanghai"
|
||||
|
||||
# 部署策略配置
|
||||
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分钟)
|
||||
|
||||
# ==============================================================================
|
||||
# 分支构建配置 - 定义不同Git分支的构建参数
|
||||
# ==============================================================================
|
||||
branchConfig:
|
||||
# 开发分支配置
|
||||
dev:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S204-docker"
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 测试分支配置
|
||||
test:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S204-docker"
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 主分支配置(生产环境)
|
||||
master:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S204-docker"
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# 服务配置 - 定义每个微服务的特定配置
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
django_layui2:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "django_layui2"
|
||||
packageName: "django_layui2"
|
||||
servicePath: "."
|
||||
pyFile: "manage.py"
|
||||
port: "8010"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
django_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "django_elevue"
|
||||
packageName: "django_elevue"
|
||||
servicePath: "."
|
||||
pyFile: "manage"
|
||||
port: "8013"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
django_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "django_elevue"
|
||||
containerName: "django_elevue"
|
||||
packageName: "django_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
django_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "django_antdvue"
|
||||
packageName: "django_antdvue"
|
||||
servicePath: "."
|
||||
pyFile: "manage"
|
||||
port: "8016"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
django_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "django_antdvue"
|
||||
containerName: "django_antdvue"
|
||||
packageName: "django_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
flask_layui:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "flask_layui"
|
||||
packageName: "flask_layui"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8020"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
flask_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "flask_elevue"
|
||||
packageName: "flask_elevue"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8023"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
flask_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "flask_elevue"
|
||||
containerName: "flask_elevue"
|
||||
packageName: "flask_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
flask_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "flask_antdvue"
|
||||
packageName: "flask_antdvue"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8026"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
flask_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "flask_antdvue"
|
||||
containerName: "flask_antdvue"
|
||||
packageName: "flask_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
fastapi_layui:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "fastapi_layui"
|
||||
packageName: "fastapi_layui"
|
||||
servicePath: "."
|
||||
pyFile: "main"
|
||||
port: "8030"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
fastapi_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "fastapi_elevue"
|
||||
packageName: "fastapi_elevue"
|
||||
servicePath: "."
|
||||
pyFile: "main"
|
||||
port: "8033"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
fastapi_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "fastapi_elevue"
|
||||
containerName: "fastapi_elevue"
|
||||
packageName: "fastapi_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
fastapi_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "fastapi_antdvue"
|
||||
packageName: "fastapi_antdvue"
|
||||
servicePath: "."
|
||||
pyFile: "main"
|
||||
port: "8036"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
fastapi_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "fastapi_antdvue"
|
||||
containerName: "fastapi_antdvue"
|
||||
packageName: "fastapi_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
tornado_layui:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "tornado_layui"
|
||||
packageName: "tornado_layui"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8040"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
tornado_elevue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "tornado_elevue"
|
||||
packageName: "tornado_elevue"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8043"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
tornado_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "tornado_elevue"
|
||||
containerName: "tornado_elevue"
|
||||
packageName: "tornado_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
tornado_antdvue:
|
||||
programLang: "python"
|
||||
programLangVersion: "3.9.13"
|
||||
containerName: "tornado_antdvue"
|
||||
packageName: "tornado_antdvue"
|
||||
servicePath: "."
|
||||
pyFile: "app"
|
||||
port: "8046"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "python-docker-compose"
|
||||
tornado_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "tornado_antdvue"
|
||||
containerName: "tornado_antdvue"
|
||||
packageName: "tornado_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
|
||||
|
||||
544
config-file/dockerConfig.yml
Normal file
544
config-file/dockerConfig.yml
Normal file
@ -0,0 +1,544 @@
|
||||
# ==============================================================================
|
||||
# 基础镜像构建配置文件
|
||||
# 版本: 2.0
|
||||
# 描述: 定义基础镜像构建的标准化配置
|
||||
# ==============================================================================
|
||||
|
||||
# ==============================================================================
|
||||
# 元数据配置 - 配置文件的基本信息
|
||||
# ==============================================================================
|
||||
metadata:
|
||||
# 配置文件版本,用于兼容性管理
|
||||
configVersion: "2.0"
|
||||
# 配置文件的详细描述
|
||||
description: "基础镜像构建标准化配置"
|
||||
# 配置文件创建日期
|
||||
created: "2024-09-15"
|
||||
# 维护者联系方式
|
||||
maintainer: "xiaomayicloud@163.com"
|
||||
|
||||
# ==============================================================================
|
||||
# 全局通用配置 - 所有环境共享的配置项
|
||||
# ==============================================================================
|
||||
common:
|
||||
# Git仓库配置 - 代码仓库相关设置
|
||||
git:
|
||||
# 仓库地址 - Git仓库的URL
|
||||
url: "http://192.168.10.102:3000/cicd/jenkins-docker-images.git"
|
||||
# 默认分支 - 主要开发分支
|
||||
defaultBranch: "master"
|
||||
# 凭证ID - Jenkins中存储的Git认证凭据ID
|
||||
credentialsId: "c9b5eae2-5df5-485f-bebd-9cd5393b03e1"
|
||||
# 克隆选项 - Git克隆操作的参数设置
|
||||
cloneOptions:
|
||||
depth: 1 # 浅克隆深度,只获取最近的一次提交
|
||||
shallow: true # 启用浅克隆,减少克隆时间
|
||||
timeout: 10 # 克隆操作超时时间(分钟)
|
||||
# 钉钉消息
|
||||
dingtalk:
|
||||
# 凭证ID - Jenkins中存储的DingTalk认证凭据ID
|
||||
credentialsId: "jenkins-dingtalk-robot"
|
||||
|
||||
# ==============================================================================
|
||||
# 镜像仓库配置 - 定义不同的容器镜像仓库
|
||||
# ==============================================================================
|
||||
registrys:
|
||||
# 默认仓库配置 - 内部私有仓库,用于日常开发测试
|
||||
default:
|
||||
# 内部私有仓库地址 - 企业内部部署的Harbor或Registry地址
|
||||
registry: "192.168.10.102:8001"
|
||||
# Jenkins凭证ID - 用于仓库认证的凭据ID
|
||||
registryCredential: "xiaomayi-hub-credentials"
|
||||
# 仓库中的项目/命名空间名称 - 镜像存放的项目空间
|
||||
registryProject: "xiaomayi-base"
|
||||
# 仓库类型 - 仓库的技术类型(harbor、acr、dockerhub等)
|
||||
registryType: "harbor"
|
||||
|
||||
# 阿里云ACR仓库配置 - 云上仓库,用于生产环境或特定场景
|
||||
aliyun:
|
||||
# 阿里云VPC内网地址 - 阿里云容器镜像服务的VPC内网地址,网络性能更优
|
||||
registry: "registry-vpc.cn-hangzhou.aliyuncs.com"
|
||||
# 阿里云仓库认证凭证 - 阿里云访问凭据的Jenkins ID
|
||||
registryCredential: "aliyun-hub-credentials"
|
||||
# 阿里云仓库项目名称 - 阿里云ACR中的命名空间
|
||||
registryProject: "xiaomayi-base"
|
||||
# 仓库类型 - 阿里云容器镜像服务
|
||||
registryType: "acr"
|
||||
|
||||
# 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"
|
||||
|
||||
# 通知配置 - 构建结果通知设置
|
||||
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构建缓存
|
||||
|
||||
# ==============================================================================
|
||||
# 短信服务配置
|
||||
# 描述: 定义短信通知服务的相关配置,支持多种短信服务商和模板配置
|
||||
# ==============================================================================
|
||||
|
||||
# 短信服务提供商配置
|
||||
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"
|
||||
# --------------------------------------------------------------------------
|
||||
# 测试环境配置 - 用于集成测试,配置接近生产环境
|
||||
# --------------------------------------------------------------------------
|
||||
test:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
# --------------------------------------------------------------------------
|
||||
# 用户验收测试环境配置 - 模拟生产环境,用于最终验收测试
|
||||
# --------------------------------------------------------------------------
|
||||
uat:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
# --------------------------------------------------------------------------
|
||||
# 生产环境配置 - 线上真实环境,配置最为严格
|
||||
# --------------------------------------------------------------------------
|
||||
prod:
|
||||
# 容器镜像
|
||||
registry: "default"
|
||||
|
||||
# ==============================================================================
|
||||
# 分支构建配置 - 定义不同Git分支的构建参数
|
||||
# ==============================================================================
|
||||
branchConfig:
|
||||
# 开发分支配置 - 用于日常开发环境
|
||||
dev:
|
||||
# Jenkins代理 - 执行构建任务的Jenkins节点标签
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Docker镜像构建配置 - Docker构建相关参数
|
||||
docker:
|
||||
# Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
buildOptions: "--no-cache --pull"
|
||||
|
||||
# 测试分支配置 - 用于测试环境
|
||||
test:
|
||||
# Jenkins代理 - 测试环境使用的构建节点
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Docker镜像构建配置 - 测试环境构建参数
|
||||
docker:
|
||||
# Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
buildOptions: "--no-cache --pull"
|
||||
|
||||
# 主分支配置(生产环境) - 用于生产环境发布
|
||||
master:
|
||||
# Jenkins代理 - 生产环境使用的构建节点
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Docker镜像构建配置 - 生产环境构建参数
|
||||
docker:
|
||||
# Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
buildOptions: "--no-cache --pull"
|
||||
|
||||
# ==============================================================================
|
||||
# 镜像服务配置 - 定义每个基础镜像的特定配置
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
# JDK 17.0.16 CentOS 8 镜像配置
|
||||
jdk17.0.16-centos8-dos:
|
||||
baseImage: "centos:8" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/jdk/17.0.16-centos8-dos" # Docker构建上下文路径
|
||||
imageName: jdk # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# 字体文件配置
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 源文件路径(相对构建上下文)
|
||||
target: "fonts" # 目标容器内路径
|
||||
# JDK安装包配置
|
||||
jdk:
|
||||
- source: "jdk-17.0.16_linux-x64_bin.tar.gz" # JDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "17.0.16-centos8-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# JDK 17.0.16 RockyLinux 8 镜像配置
|
||||
jdk17.0.16-rocky8-dos:
|
||||
baseImage: "rockylinux:8" # RockyLinux 8基础镜像
|
||||
dockerContext: "dockerfiles/jdk/17.0.16-rocky8-dos" # 构建上下文路径
|
||||
imageName: jdk # 镜像名称
|
||||
# 资源文件配置
|
||||
resources:
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 宋体字体文件
|
||||
target: "fonts" # 容器内字体路径
|
||||
jdk:
|
||||
- source: "jdk-17.0.16_linux-x64_bin.tar.gz" # JDK安装包
|
||||
target: "" # 容器内临时路径
|
||||
# 镜像标签
|
||||
tags:
|
||||
- "17.0.16-rocky8-dos" # 详细版本标签
|
||||
|
||||
# JDK 17.0.16 Ubuntu 22.04 镜像配置
|
||||
jdk17.0.16-ubuntu22-dos:
|
||||
baseImage: "ubuntu:22.04" # Ubuntu 22.04基础镜像
|
||||
dockerContext: "dockerfiles/jdk/17.0.16-ubuntu22-dos" # 构建上下文路径
|
||||
imageName: jdk # 镜像名称
|
||||
# 资源文件
|
||||
resources:
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 字体文件源路径
|
||||
target: "fonts" # 容器内目标路径
|
||||
jdk:
|
||||
- source: "jdk-17.0.16_linux-x64_bin.tar.gz" # JDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签
|
||||
tags:
|
||||
- "17.0.16-ubuntu22-dos" # 包含系统和版本信息的标签
|
||||
# JDK 17.0.16 Debian 13 镜像配置
|
||||
jdk17.0.16-debian13-dos:
|
||||
baseImage: "debian:trixie-slim" # Ubuntu 22.04基础镜像
|
||||
dockerContext: "dockerfiles/jdk/17.0.16-debian13-dos" # 构建上下文路径
|
||||
imageName: jdk # 镜像名称
|
||||
# 资源文件
|
||||
resources:
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 字体文件源路径
|
||||
target: "fonts" # 容器内目标路径
|
||||
jdk:
|
||||
- source: "jdk-17.0.16_linux-x64_bin.tar.gz" # JDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签
|
||||
tags:
|
||||
- "17.0.16-debian13-dos" # 包含系统和版本信息的标签
|
||||
|
||||
# JRE 8u202 CentOS 8 镜像配置
|
||||
jre8u202-centos8-dos:
|
||||
baseImage: "centos:8" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/jre/8u202-centos8-dos" # Docker构建上下文路径
|
||||
imageName: jre # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# 字体文件配置
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 源文件路径(相对构建上下文)
|
||||
target: "fonts" # 目标容器内路径
|
||||
# JDK安装包配置
|
||||
jdk:
|
||||
- source: "jre-8u202-linux-x64.tar.gz" # JRE安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "8u202-centos8-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# JRE 8u202 Rocky 8 镜像配置
|
||||
jre8u202-rocky8-dos:
|
||||
baseImage: "rockylinux:8.9-minimal" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/jre/8u202-rocky8-dos" # Docker构建上下文路径
|
||||
imageName: jre # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# 字体文件配置
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 源文件路径(相对构建上下文)
|
||||
target: "fonts" # 目标容器内路径
|
||||
# JDK安装包配置
|
||||
jdk:
|
||||
- source: "jre-8u202-linux-x64.tar.gz" # JRE安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "8u202-rocky8-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# JRE 8u202 Rocky 8 镜像配置
|
||||
jre8u202-ubuntu22-dos:
|
||||
baseImage: "ubuntu:22.04" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/jre/8u202-utunbu22-dos" # Docker构建上下文路径
|
||||
imageName: jre # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# 字体文件配置
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 源文件路径(相对构建上下文)
|
||||
target: "fonts" # 目标容器内路径
|
||||
# JDK安装包配置
|
||||
jdk:
|
||||
- source: "jre-8u202-linux-x64.tar.gz" # JRE安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "8u202-utunbu22-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# JRE 8u202 CentOS 8 镜像配置
|
||||
jre8u202-debian13-dos:
|
||||
baseImage: "debian:trixie-slim" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/jre/8u202-debian13-dos" # Docker构建上下文路径
|
||||
imageName: jre # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# 字体文件配置
|
||||
fonts:
|
||||
- source: "fonts/simsun.ttf" # 源文件路径(相对构建上下文)
|
||||
target: "fonts" # 目标容器内路径
|
||||
# JDK安装包配置
|
||||
jdk:
|
||||
- source: "jre-8u202-linux-x64.tar.gz" # JRE安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "8u202-debian13-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.25.1 CentOS 8 镜像配置
|
||||
go1.25.1-centos8-dos:
|
||||
baseImage: "centos:8" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.25.1-centos8-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.25.1.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.25.1-centos8-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.25.1 CentOS 8 镜像配置
|
||||
go1.25.1-rocky8-dos:
|
||||
baseImage: "rockylinux:8.9-minimal" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.25.1-rocky8-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.25.1.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.25.1-rocky8-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.25.1 Ubuntu 22.04 镜像配置
|
||||
go1.25.1-ubuntu22-dos:
|
||||
baseImage: "ubuntu:22.04" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.25.1-ubuntu22-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.25.1.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.25.1-ubuntu22-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Go 1.25.1 Debian 12 镜像配置
|
||||
go1.25.1-debian12-dos:
|
||||
baseImage: "debian:bookworm-slim" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/golang/1.25.1-debian12-dos" # Docker构建上下文路径
|
||||
imageName: go # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "go1.25.1.linux-amd64.tar.gz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "1.25.1-debian12-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Python 3.9.13 CentOS 8 镜像配置
|
||||
python3.9.13-centos8-dos:
|
||||
baseImage: "centos:8" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.9.13-centos8-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.9.13.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.9.13-centos8-dos" # 版本化标签(包含版本和系统信息)
|
||||
# Python 3.9.13 Rocky 8 镜像配置
|
||||
python3.9.13-rocky8-dos:
|
||||
baseImage: "rockylinux:8.9-minimal" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.9.13-rocky8-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.9.13.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.9.13-rocky8-dos" # 版本化标签(包含版本和系统信息)
|
||||
# Python 3.9.13 Ubuntu 22.04 镜像配置
|
||||
python3.9.13-ubuntu22-dos:
|
||||
baseImage: "ubuntu:22.04" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.9.13-ubuntu22-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.9.13.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.9.13-ubuntu22-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Python 3.9.13 Debian 12 镜像配置
|
||||
python3.9.13-debian12-dos:
|
||||
baseImage: debian:bookworm-slim" # 基础镜像名称
|
||||
dockerContext: "dockerfiles/python/3.9.13-debian12-dos" # Docker构建上下文路径
|
||||
imageName: python # 生成的镜像名称
|
||||
# 资源文件 - 构建时需要复制的文件资源
|
||||
resources:
|
||||
# SDK安装包配置
|
||||
sdk:
|
||||
- source: "Python-3.9.13.tar.xz" # SDK安装包源文件
|
||||
target: "" # 容器内临时存放路径
|
||||
# 镜像标签列表 - 构建完成后打标签的名称
|
||||
tags:
|
||||
- "3.9.13-debian12-dos" # 版本化标签(包含版本和系统信息)
|
||||
|
||||
# Nginx 1.24 Alpine 镜像配置
|
||||
nginx1.24-alpine:
|
||||
baseImage: "nginx:1.24-alpine" # Nginx Alpine基础镜像
|
||||
dockerContext: "dockerfiles/nginx/nginx1.24-alpine" # 构建上下文路径
|
||||
imageName: nginx # 镜像名称
|
||||
# 资源文件(当前为空,可根据需要添加配置文件等)
|
||||
resources:
|
||||
# 镜像标签
|
||||
tags:
|
||||
- "1.24-alpine" # 版本和系统组合标签
|
||||
661
config-file/easygoadminConfig.yml
Normal file
661
config-file/easygoadminConfig.yml
Normal file
@ -0,0 +1,661 @@
|
||||
# ==============================================================================
|
||||
# 通用配置块 - 包含所有环境共享的配置项
|
||||
# ==============================================================================
|
||||
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: "go:1.25.1-rocky8-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: "go:1.25.1-rocky8-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: "go:1.25.1-rocky8-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: "/opt/apps" # 目标服务器上的应用部署根路径
|
||||
|
||||
# ==============================================================================
|
||||
# 短信服务配置
|
||||
# 描述: 定义短信通知服务的相关配置,支持多种短信服务商和模板配置
|
||||
# ==============================================================================
|
||||
|
||||
# 短信服务提供商配置
|
||||
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.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S202服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
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.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
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.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S110服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
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@192.168.10.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S210服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 22 # SSH端口号
|
||||
serverName: "S220服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: false # 主节点标识,优先部署
|
||||
priority: 2 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
# 环境变量 - 部署时注入到容器中的环境变量
|
||||
envVars:
|
||||
TZ: "Asia/Shanghai"
|
||||
|
||||
# 部署策略配置
|
||||
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分钟)
|
||||
|
||||
# ==============================================================================
|
||||
# 分支构建配置 - 定义不同Git分支的构建参数
|
||||
# ==============================================================================
|
||||
branchConfig:
|
||||
# 开发分支配置
|
||||
dev:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S204-docker"
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 测试分支配置
|
||||
test:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S204-docker"
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
# 主分支配置(生产环境)
|
||||
master:
|
||||
# Jenkins代理
|
||||
jenkinsAgent: "S204-docker"
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# 服务配置 - 定义每个微服务的特定配置
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
gin_layui2:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "gin_layui2"
|
||||
packageName: "gin_layui2"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "gin_layui2"
|
||||
port: "8010"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
gin_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "gin_elevue"
|
||||
packageName: "gin_elevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "gin_elevue"
|
||||
port: "8013"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
gin_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "gin_elevue"
|
||||
containerName: "gin_elevue"
|
||||
packageName: "gin_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
gin_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "gin_antdvue"
|
||||
packageName: "gin_antdvue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "gin_antdvue"
|
||||
port: "8016"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
gin_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "gin_antdvue"
|
||||
containerName: "gin_antdvue"
|
||||
packageName: "gin_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
goframe_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "goframe_layui"
|
||||
packageName: "goframe_layui"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "goframe_layui"
|
||||
port: "8020"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
goframe_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "goframe_elevue"
|
||||
packageName: "goframe_elevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "goframe_elevue"
|
||||
port: "8023"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
goframe_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "goframe_elevue"
|
||||
containerName: "goframe_elevue"
|
||||
packageName: "goframe_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
goframe_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "goframe_antdvue"
|
||||
packageName: "goframe_antdvue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "goframe_antdvue"
|
||||
port: "8026"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
goframe_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "goframe_antdvue"
|
||||
containerName: "goframe_antdvue"
|
||||
packageName: "goframe_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
beego_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "beego_layui"
|
||||
packageName: "beego_layui"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "beego_layui"
|
||||
port: "8030"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
beego_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "beego_elevue"
|
||||
packageName: "beego_elevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "beego_elevue"
|
||||
port: "8033"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
beego_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "beego_elevue"
|
||||
containerName: "beego_elevue"
|
||||
packageName: "beego_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
beego_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "beego_antdvue"
|
||||
packageName: "beego_antdvue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "beego_antdvue"
|
||||
port: "8036"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
beego_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "beego_antdvue"
|
||||
containerName: "beego_antdvue"
|
||||
packageName: "beego_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
iris_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "iris_layui"
|
||||
packageName: "iris_layui"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "iris_layui"
|
||||
port: "8040"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
iris_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "iris_elevue"
|
||||
packageName: "iris_elevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "iris_elevue"
|
||||
port: "8043"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
iris_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "iris_elevue"
|
||||
containerName: "iris_elevue"
|
||||
packageName: "iris_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
iris_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "iris_antdvue"
|
||||
packageName: "iris_antdvue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "iris_antdvue"
|
||||
port: "8046"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
iris_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "iris_antdvue"
|
||||
containerName: "iris_antdvue"
|
||||
packageName: "iris_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
echo_layui:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "echo_layui"
|
||||
packageName: "echo_layui"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "echo_layui"
|
||||
port: "8050"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
echo_elevue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "echo_elevue"
|
||||
packageName: "echo_elevue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "echo_elevue"
|
||||
port: "8053"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
echo_elevue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "echo_elevue"
|
||||
containerName: "echo_elevue"
|
||||
packageName: "echo_elevue.tar.gz"
|
||||
servicePath: "evui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
echo_antdvue:
|
||||
programLang: "go"
|
||||
programLangVersion: "1.25.1"
|
||||
containerName: "echo_antdvue"
|
||||
packageName: "echo_antdvue"
|
||||
servicePath: "."
|
||||
mainFile: "main.go"
|
||||
goFile: "echo_antdvue"
|
||||
port: "8056"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "golang-docker-compose"
|
||||
echo_antdvue_ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "echo_antdvue"
|
||||
containerName: "echo_antdvue"
|
||||
packageName: "echo_antdvue.tar.gz"
|
||||
servicePath: "avui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
|
||||
|
||||
240
config-file/nexusConfig.yml
Normal file
240
config-file/nexusConfig.yml
Normal file
@ -0,0 +1,240 @@
|
||||
# ==============================================================================
|
||||
# Nexus私库上传配置 - 核心类库JAR包发布配置
|
||||
# 用途: 用于配置小蚂蚁核心类库的编译、打包和发布到Nexus私库的流程
|
||||
# ==============================================================================
|
||||
|
||||
# ==============================================================================
|
||||
# 通用配置块 - 包含所有环境共享的配置项
|
||||
# ==============================================================================
|
||||
common:
|
||||
# Nexus仓库配置 - 定义不同的Maven仓库地址和认证信息
|
||||
nexus:
|
||||
# 默认Nexus仓库配置 - 内部私有仓库(主要使用)
|
||||
default:
|
||||
# Nexus仓库地址 - 企业内部部署的Nexus地址
|
||||
url: "http://192.168.10.102:8081/repository/maven-releases/"
|
||||
# Snapshots仓库地址 - 用于开发阶段的快照版本
|
||||
snapshotsUrl: "http://192.168.10.102:8081/repository/maven-snapshots/"
|
||||
# Jenkins凭证ID - 用于Nexus认证的凭据ID(用户名/密码或API Token)
|
||||
credentialsId: "nexus-credentials"
|
||||
# 仓库类型 - Nexus仓库
|
||||
type: "nexus"
|
||||
# 仓库策略 - 发布版本使用releases,快照版本使用snapshots
|
||||
policy: "releases"
|
||||
|
||||
# 阿里云Maven仓库配置 - 备用仓库(可根据需要启用)
|
||||
aliyun:
|
||||
# 阿里云Maven仓库地址 - 云上Maven仓库
|
||||
url: "https://packages.aliyun.com/maven/repository/xiaomayi-release/"
|
||||
# Snapshots仓库地址 - 云上快照仓库
|
||||
snapshotsUrl: "https://packages.aliyun.com/maven/repository/xiaomayi-snapshot/"
|
||||
# 阿里云仓库认证凭证 - 阿里云访问凭据
|
||||
credentialsId: "aliyun-maven-credentials"
|
||||
# 仓库类型 - 阿里云Maven仓库
|
||||
type: "aliyun"
|
||||
# 仓库策略 - 发布策略
|
||||
policy: "releases"
|
||||
|
||||
# 钉钉消息配置 - 用于构建和发布状态通知
|
||||
dingtalk:
|
||||
# 凭证ID - Jenkins中存储的DingTalk认证凭据ID
|
||||
credentialsId: "jenkins-dingtalk-robot"
|
||||
# 通知群组 - 接收通知的钉钉群组
|
||||
groups: ["核心库发布通知群"]
|
||||
|
||||
# 通知配置 - 构建结果通知设置
|
||||
notification:
|
||||
# 构建成功通知配置 - 发布成功时发送通知
|
||||
success:
|
||||
# 通知渠道配置
|
||||
channels:
|
||||
# 邮件通知 - 接收邮件的地址列表
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知 - 接收短信的手机号列表(注释状态,可根据需要启用)
|
||||
# sms: ["15295504151"]
|
||||
# 钉钉通知 - 是否启用钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知 - 是否启用Slack通知(目前未启用)
|
||||
slack: false
|
||||
# 成功通知模板 - 通知消息内容模板
|
||||
template: "核心库 {library} 版本 {version} 发布成功!"
|
||||
|
||||
# 构建失败通知配置 - 发布失败时发送告警
|
||||
failure:
|
||||
# 通知渠道配置
|
||||
channels:
|
||||
# 邮件通知 - 失败告警邮件接收地址
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知 - 紧急告警短信(注释状态)
|
||||
# sms: ["15295504151"]
|
||||
# 钉钉通知 - 启用钉钉告警
|
||||
dingtalk: true
|
||||
# Slack通知 - 未启用
|
||||
slack: false
|
||||
# 失败通知模板
|
||||
template: "警告:核心库 {library} 发布失败!错误信息:{error}"
|
||||
|
||||
# 构建被中止通知 - 手动中止构建时发送通知
|
||||
aborted:
|
||||
# 通知渠道配置
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 短信通知(注释状态)
|
||||
# sms: ["15295504151"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# Slack通知 - 未启用
|
||||
slack: false
|
||||
# 中止通知模板
|
||||
template: "核心库 {library} 发布流程被中止"
|
||||
|
||||
# 构建不稳定通知配置 - 构建完成但存在警告时发送
|
||||
unstable:
|
||||
# 通知渠道配置
|
||||
channels:
|
||||
# 邮件通知
|
||||
email: ["xiaomayicloud@163.com"]
|
||||
# 钉钉通知
|
||||
dingtalk: true
|
||||
# 不稳定通知模板
|
||||
template: "注意:核心库 {library} 发布完成但存在警告"
|
||||
|
||||
# 构建策略 - 构建过程的策略配置
|
||||
buildStrategy:
|
||||
# 重试配置
|
||||
retryCount: 3 # 构建失败重试次数(网络问题等可重试场景)
|
||||
timeoutMinutes: 60 # 构建超时时间(分钟)- 防止构建过程卡死
|
||||
cleanupWorkspace: true # 构建完成后是否清理工作空间 - 节省磁盘空间
|
||||
enableCaching: true # 是否启用Maven依赖缓存 - 加速后续构建
|
||||
|
||||
# 发布策略 - 发布到Nexus的相关配置
|
||||
publishStrategy:
|
||||
# 版本管理策略
|
||||
versionPolicy: "semantic" # 版本策略:semantic-语义化版本控制
|
||||
# 自动发布设置
|
||||
autoPublish: true # 是否自动发布(false时需要人工确认)
|
||||
# 签名配置
|
||||
signArtifacts: true # 是否对构件进行GPG签名
|
||||
gpgKeyId: "xiaomayi-signing-key" # GPG签名密钥ID
|
||||
|
||||
# ==============================================================================
|
||||
# 环境特定配置 - 不同环境的差异化配置
|
||||
# ==============================================================================
|
||||
profiles:
|
||||
# 开发环境配置 - 用于开发阶段的持续集成
|
||||
dev:
|
||||
# Nexus仓库配置 - 使用默认Nexus仓库
|
||||
nexus: "default"
|
||||
# 版本后缀 - 开发环境使用SNAPSHOT版本标识
|
||||
versionSuffix: "-SNAPSHOT"
|
||||
# 自动发布设置 - 开发环境自动发布到Snapshots仓库
|
||||
autoDeploy: true
|
||||
# 仓库策略 - 发布到Snapshots仓库
|
||||
repositoryPolicy: "snapshots"
|
||||
|
||||
# 测试环境配置 - 用于测试验证
|
||||
test:
|
||||
# Nexus仓库配置
|
||||
nexus: "default"
|
||||
# 版本后缀 - 测试环境也可使用SNAPSHOT版本,便于迭代测试
|
||||
versionSuffix: "-SNAPSHOT"
|
||||
# 自动发布设置 - 测试环境自动发布
|
||||
autoDeploy: true
|
||||
# 仓库策略 - 发布到Snapshots仓库
|
||||
repositoryPolicy: "snapshots"
|
||||
|
||||
# UAT环境配置 - 用户验收测试环境
|
||||
uat:
|
||||
# Nexus仓库配置
|
||||
nexus: "default"
|
||||
# 版本后缀 - UAT环境使用正式版本,但不一定立即发布到Release
|
||||
versionSuffix: "-RC" # Release Candidate版本
|
||||
# 自动发布设置 - UAT环境需要人工确认
|
||||
autoDeploy: false
|
||||
# 仓库策略 - 可发布到Staging仓库
|
||||
repositoryPolicy: "staging"
|
||||
|
||||
# 生产环境配置 - 正式发布环境
|
||||
prod:
|
||||
# Nexus仓库配置
|
||||
nexus: "default"
|
||||
# 版本后缀 - 生产环境使用正式版本,无后缀
|
||||
versionSuffix: ""
|
||||
# 自动发布设置 - 生产环境必须人工确认
|
||||
autoDeploy: false
|
||||
# 仓库策略 - 发布到Releases仓库
|
||||
repositoryPolicy: "releases"
|
||||
|
||||
# ==============================================================================
|
||||
# 分支构建配置 - 定义不同Git分支的构建参数
|
||||
# ==============================================================================
|
||||
branchConfig:
|
||||
# 开发分支配置 - 对应开发环境
|
||||
dev:
|
||||
# Jenkins代理节点 - 执行构建的Jenkins节点
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置 - Java应用编译和打包
|
||||
maven:
|
||||
mavenSet: "nexus-maven-dev" # Maven配置集名称(settings.xml)
|
||||
skipTests: false # 是否跳过测试(开发分支不跳过)
|
||||
goals: "clean deploy" # Maven执行目标:清理、部署到Nexus
|
||||
options: "-DskipITs" # Maven选项参数:跳过集成测试
|
||||
# 发布配置
|
||||
deploy: true # 是否执行部署操作
|
||||
updateVersion: true # 是否更新版本号
|
||||
|
||||
# 测试分支配置 - 对应测试环境
|
||||
test:
|
||||
# Jenkins代理节点
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置
|
||||
maven:
|
||||
mavenSet: "nexus-maven-test" # 测试环境Maven配置
|
||||
skipTests: false # 不跳过测试,确保质量
|
||||
goals: "clean deploy" # 执行清理和部署
|
||||
options: "-Ptest" # 激活test profile
|
||||
# 发布配置
|
||||
deploy: true # 执行部署
|
||||
updateVersion: false # 不自动更新版本号
|
||||
|
||||
# 主分支配置(生产环境) - 对应生产发布
|
||||
master:
|
||||
# Jenkins代理节点
|
||||
jenkinsAgent: "S205-docker"
|
||||
# Maven构建配置
|
||||
maven:
|
||||
mavenSet: "maven-yunhengv4-host-dev" # 生产环境Maven配置
|
||||
skipTests: false # 生产构建不跳过测试,确保稳定性
|
||||
goals: "clean deploy" # 执行清理和部署
|
||||
options: "-Prelease" # 激活release profile
|
||||
# 发布配置
|
||||
deploy: true # 执行部署
|
||||
updateVersion: false # 版本号由人工管理
|
||||
|
||||
# ==============================================================================
|
||||
# 核心库服务配置 - 定义需要发布的核心类库项目
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
# 核心类库
|
||||
xiaomayi-common:
|
||||
# 项目基本信息
|
||||
projectName: "xiaomayi-common" # 项目名称
|
||||
description: "小蚂蚁通用工具库" # 项目描述
|
||||
# 技术栈配置
|
||||
programLang: "java" # 编程语言:Java
|
||||
programLangVersion: "17.0.16" # Java版本:17.0.16
|
||||
# 项目结构配置
|
||||
pomFilePath: "pom.xml" # POM文件路径(根目录)
|
||||
servicePath: "" # 服务路径(空表示根目录)
|
||||
# 核心类库
|
||||
yunheng-common:
|
||||
# 项目基本信息
|
||||
projectName: "yunheng-common" # 项目名称
|
||||
description: "云恒通用工具库" # 项目描述
|
||||
# 技术栈配置
|
||||
programLang: "java" # 编程语言:Java
|
||||
programLangVersion: "17.0.16" # Java版本:17.0.16
|
||||
# 项目结构配置
|
||||
pomFilePath: "pom.xml" # POM文件路径(根目录)
|
||||
servicePath: "" # 服务路径(空表示根目录)
|
||||
178
config-file/xiaomayi-cloud-consul.json
Normal file
178
config-file/xiaomayi-cloud-consul.json
Normal file
@ -0,0 +1,178 @@
|
||||
{
|
||||
"branchConfig": {
|
||||
"master": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.115",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.115",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"test": {
|
||||
"MAVEN_SET": "nexus-maven-test",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.115",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"xiaomayi-consul": {
|
||||
"containerName": "xiaomayi-consul",
|
||||
"jarPackageName": "xiaomayi-consul.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-consul",
|
||||
"port": "8848",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-gateway": {
|
||||
"containerName": "xiaomayi-gateway",
|
||||
"jarPackageName": "xiaomayi-gateway.jar",
|
||||
"servicePath": "xiaomayi-gateway",
|
||||
"port": "9010",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-auth": {
|
||||
"containerName": "xiaomayi-auth",
|
||||
"jarPackageName": "xiaomayi-auth.jar",
|
||||
"servicePath": "xiaomayi-auth",
|
||||
"port": "9020",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-seata": {
|
||||
"containerName": "xiaomayi-seatas",
|
||||
"jarPackageName": "xiaomayi-seatas.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-seatas",
|
||||
"port": "7091",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-admin-biz": {
|
||||
"containerName": "xiaomayi-admin-biz",
|
||||
"jarPackageName": "xiaomayi-admin-biz.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-admin/xiaomayi-admin-biz",
|
||||
"port": "9030",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-web-biz": {
|
||||
"containerName": "xiaomayi-web-biz",
|
||||
"jarPackageName": "xiaomayi-web-biz.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-web/xiaomayi-web-biz",
|
||||
"port": "9031",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-uniapp-biz": {
|
||||
"containerName": "xiaomayi-uniapp-biz",
|
||||
"jarPackageName": "xiaomayi-uniapp-biz.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-uniapp/xiaomayi-uniapp-biz",
|
||||
"port": "9032",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-system-biz": {
|
||||
"containerName": "xiaomayi-system-biz",
|
||||
"jarPackageName": "xiaomayi-system-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-system/xiaomayi-system-biz",
|
||||
"port": "9040",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-user-biz": {
|
||||
"containerName": "xiaomayi-user-biz",
|
||||
"jarPackageName": "xiaomayi-user-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-user/xiaomayi-user-biz",
|
||||
"port": "9042",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-cms-biz": {
|
||||
"containerName": "xiaomayi-cms-biz",
|
||||
"jarPackageName": "xiaomayi-cms-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-cms/xiaomayi-cms-biz",
|
||||
"port": "9043",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-order-biz": {
|
||||
"containerName": "xiaomayi-order-biz",
|
||||
"jarPackageName": "xiaomayi-order-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-order/xiaomayi-order-biz",
|
||||
"port": "9045",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-product-biz": {
|
||||
"containerName": "xiaomayi-product-biz",
|
||||
"jarPackageName": "xiaomayi-product-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-product/xiaomayi-product-biz",
|
||||
"port": "9046",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-generator": {
|
||||
"containerName": "xiaomayi-generator",
|
||||
"jarPackageName": "xiaomayi-generator.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-generator",
|
||||
"port": "9041",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-monitor": {
|
||||
"containerName": "xiaomayi-monitor",
|
||||
"jarPackageName": "xiaomayi-monitor.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-monitor",
|
||||
"port": "9000",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-job": {
|
||||
"containerName": "xiaomayi-job",
|
||||
"jarPackageName": "xiaomayi-job.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-job",
|
||||
"port": "9044",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-elevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-elevue-ui",
|
||||
"packageName": "xiaomayi-consul-elevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-antdvue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-antdvue-ui",
|
||||
"packageName": "xiaomayi-consul-antdvue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-naivevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-naivevue-ui",
|
||||
"packageName": "xiaomayi-consul-naivevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-arcovue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-arcovue-ui",
|
||||
"packageName": "xiaomayi-consul-arcovue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
207
config-file/xiaomayi-cloud-nacos.json
Normal file
207
config-file/xiaomayi-cloud-nacos.json
Normal file
@ -0,0 +1,207 @@
|
||||
{
|
||||
"branchConfig": {
|
||||
"master": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.114",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.113",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"test": {
|
||||
"MAVEN_SET": "nexus-maven-test",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.113",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"xiaomayi-nacos": {
|
||||
"containerName": "xiaomayi-nacoss",
|
||||
"jarPackageName": "xiaomayi-nacoss.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-nacoss",
|
||||
"port": "8848",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-gateway": {
|
||||
"containerName": "xiaomayi-gateway",
|
||||
"jarPackageName": "xiaomayi-gateway.jar",
|
||||
"servicePath": "xiaomayi-gateway",
|
||||
"port": "9010",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-auth": {
|
||||
"containerName": "xiaomayi-auth",
|
||||
"jarPackageName": "xiaomayi-auth.jar",
|
||||
"servicePath": "xiaomayi-auth",
|
||||
"port": "9020",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-seata": {
|
||||
"containerName": "xiaomayi-seatas",
|
||||
"jarPackageName": "xiaomayi-seatas.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-seatas",
|
||||
"port": "7091",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-admin-biz": {
|
||||
"containerName": "xiaomayi-admin-biz",
|
||||
"jarPackageName": "xiaomayi-admin-biz.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-admin/xiaomayi-admin-biz",
|
||||
"port": "9030",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-web-biz": {
|
||||
"containerName": "xiaomayi-web-biz",
|
||||
"jarPackageName": "xiaomayi-web-biz.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-web/xiaomayi-web-biz",
|
||||
"port": "9031",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-uniapp-biz": {
|
||||
"containerName": "xiaomayi-uniapp-biz",
|
||||
"jarPackageName": "xiaomayi-uniapp-biz.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-uniapp/xiaomayi-uniapp-biz",
|
||||
"port": "9032",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-system-biz": {
|
||||
"containerName": "xiaomayi-system-biz",
|
||||
"jarPackageName": "xiaomayi-system-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-system/xiaomayi-system-biz",
|
||||
"port": "9040",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-user-biz": {
|
||||
"containerName": "xiaomayi-user-biz",
|
||||
"jarPackageName": "xiaomayi-user-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-user/xiaomayi-user-biz",
|
||||
"port": "9042",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-cms-biz": {
|
||||
"containerName": "xiaomayi-cms-biz",
|
||||
"jarPackageName": "xiaomayi-cms-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-cms/xiaomayi-cms-biz",
|
||||
"port": "9043",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-order-biz": {
|
||||
"containerName": "xiaomayi-order-biz",
|
||||
"jarPackageName": "xiaomayi-order-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-order/xiaomayi-order-biz",
|
||||
"port": "9045",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-product-biz": {
|
||||
"containerName": "xiaomayi-product-biz",
|
||||
"jarPackageName": "xiaomayi-product-biz.jar",
|
||||
"servicePath": "xiaomayi-services/xiaomayi-product/xiaomayi-product-biz",
|
||||
"port": "9046",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-generator": {
|
||||
"containerName": "xiaomayi-generator",
|
||||
"jarPackageName": "xiaomayi-generator.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-generator",
|
||||
"port": "9041",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
|
||||
"xiaomayi-nacos-monitor": {
|
||||
"containerName": "xiaomayi-monitor",
|
||||
"jarPackageName": "xiaomayi-monitor.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-monitor",
|
||||
"port": "9000",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-job": {
|
||||
"containerName": "xiaomayi-job",
|
||||
"jarPackageName": "xiaomayi-job.jar",
|
||||
"servicePath": "xiaomayi-visual/xiaomayi-job",
|
||||
"port": "9044",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-elevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-elevue-ui",
|
||||
"packageName": "xiaomayi-nacos-elevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-antdvue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-antdvue-ui",
|
||||
"packageName": "xiaomayi-nacos-antdvue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-naivevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-naivevue-ui",
|
||||
"packageName": "xiaomayi-nacos-naivevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-arcovue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-arcovue-ui",
|
||||
"packageName": "xiaomayi-nacos-arcovue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-elevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-elevue-ui",
|
||||
"packageName": "xiaomayi-consul-elevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-antdvue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-antdvue-ui",
|
||||
"packageName": "xiaomayi-consul-antdvue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-naivevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-naivevue-ui",
|
||||
"packageName": "xiaomayi-consul-naivevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-arcovue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-arcovue-ui",
|
||||
"packageName": "xiaomayi-consul-arcovue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
64
config-file/xiaomayi-web.json
Normal file
64
config-file/xiaomayi-web.json
Normal file
@ -0,0 +1,64 @@
|
||||
{
|
||||
"branchConfig": {
|
||||
"master": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "124.222.176.210",
|
||||
"serverPort": 12422,
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "124.222.176.210",
|
||||
"serverPort": 12422,
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"test": {
|
||||
"MAVEN_SET": "nexus-maven-test",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "124.222.176.210",
|
||||
"serverPort": 12422,
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"xiaomayi-admin": {
|
||||
"containerName": "xiaomayi-admin",
|
||||
"jarPackageName": "xiaomayi-admin.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-admin",
|
||||
"port": "8081",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-admin2": {
|
||||
"containerName": "xiaomayi-admin",
|
||||
"jarPackageName": "xiaomayi-admin.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-admin",
|
||||
"port": "8081",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-web": {
|
||||
"containerName": "xiaomayi-web2",
|
||||
"jarPackageName": "xiaomayi-web.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-web",
|
||||
"port": "8082",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-admin-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-admin-ui",
|
||||
"packageName": "xiaomayi-admin-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
114
config-file/xiaomayi-wiki.json
Normal file
114
config-file/xiaomayi-wiki.json
Normal file
@ -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.115",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"PIP_SET": "nexus-pip-dev",
|
||||
"registry": "192.168.10.202: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.202:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.115",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"xiaomayi-elevue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-elevue",
|
||||
"packageName": "xiaomayi-elevue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-antdvue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-antdvue",
|
||||
"packageName": "xiaomayi-antdvue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-naivevue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-naivevue",
|
||||
"packageName": "xiaomayi-naivevue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-arcovue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-arcovue",
|
||||
"packageName": "xiaomayi-arcovue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_ArcoVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-elevue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-elevue",
|
||||
"packageName": "xiaomayi-nacos-elevue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Nacos_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-antdvue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-antdvue",
|
||||
"packageName": "xiaomayi-nacos-antdvue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Nacos_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-naivevue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-naivevue",
|
||||
"packageName": "xiaomayi-nacos-naivevue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Nacos_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-nacos-arcovue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-nacos-arcovue",
|
||||
"packageName": "xiaomayi-nacos-arcovue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Nacos_ArcoVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-elevue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-elevue",
|
||||
"packageName": "xiaomayi-consul-elevue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Consul_EleVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-antdvue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-antdvue",
|
||||
"packageName": "xiaomayi-consul-antdvue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Consul_AntdVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-naivevue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-naivevue",
|
||||
"packageName": "xiaomayi-consul-naivevue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Consul_NaiveVue",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-consul-arcovue-doc": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-consul-arcovue",
|
||||
"packageName": "xiaomayi-consul-arcovue.tar.gz",
|
||||
"serviceName": "XiaoMaYi_Consul_ArcoVue",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
137
config-file/xiaomayi.json
Normal file
137
config-file/xiaomayi.json
Normal file
@ -0,0 +1,137 @@
|
||||
{
|
||||
"branchConfig": {
|
||||
"master": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.102:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.112",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"dev": {
|
||||
"MAVEN_SET": "nexus-maven-dev",
|
||||
"registry": "192.168.10.202:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.114",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
},
|
||||
"test": {
|
||||
"MAVEN_SET": "nexus-maven-test",
|
||||
"registry": "192.168.10.202:8001",
|
||||
"registryCredential": "xiaomayi-hub-credentials",
|
||||
"namespace": "xiaomayi",
|
||||
"serverIP01": "192.168.10.114",
|
||||
"jenkinsAgent": "S205-docker"
|
||||
}
|
||||
},
|
||||
"serviceConfig": {
|
||||
"xiaomayi-elevue": {
|
||||
"containerName": "xiaomayi-elevue",
|
||||
"jarPackageName": "xiaomayi-elevue.jar",
|
||||
"servicePath": "xiaomayi-modules/xiaomayi-admin",
|
||||
"port": "8081",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-elevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-elevue-ui",
|
||||
"packageName": "xiaomayi-elevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-elevue-web": {
|
||||
"containerName": "xiaomayi-elevue-web",
|
||||
"jarPackageName": "xiaomayi-elevue-web.jar",
|
||||
"servicePath": "xiaomayi-web",
|
||||
"port": "8082",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-antdvue": {
|
||||
"containerName": "xiaomayi-antdvue",
|
||||
"jarPackageName": "xiaomayi-antdvue.jar",
|
||||
"servicePath": "xiaomayi-admin",
|
||||
"port": "8081",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-antdvue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-antdvue-ui",
|
||||
"packageName": "xiaomayi-antdvue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-antdvue-web": {
|
||||
"containerName": "xiaomayi-antdvue-web",
|
||||
"jarPackageName": "xiaomayi-antdvue-web.jar",
|
||||
"servicePath": "xiaomayi-web",
|
||||
"port": "8082",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-naivevue": {
|
||||
"containerName": "xiaomayi-naivevue",
|
||||
"jarPackageName": "xiaomayi-naivevue.jar",
|
||||
"servicePath": "xiaomayi-admin",
|
||||
"port": "8081",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-naivevue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-naivevue-ui",
|
||||
"packageName": "xiaomayi-naivevue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-naivevue-web": {
|
||||
"containerName": "xiaomayi-naivevue-web",
|
||||
"jarPackageName": "xiaomayi-naivevue-web.jar",
|
||||
"servicePath": "xiaomayi-web",
|
||||
"port": "8082",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-arcovue": {
|
||||
"containerName": "xiaomayi-arcovue",
|
||||
"jarPackageName": "xiaomayi-arcovue.jar",
|
||||
"servicePath": "xiaomayi-admin",
|
||||
"port": "8081",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-arcovue-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-arcovue-ui",
|
||||
"packageName": "xiaomayi-arcovue-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-arcovue-web": {
|
||||
"containerName": "xiaomayi-arcovue-web",
|
||||
"jarPackageName": "xiaomayi-arcovue-web.jar",
|
||||
"servicePath": "xiaomayi-web",
|
||||
"port": "8082",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-admin": {
|
||||
"containerName": "xiaomayi-admin",
|
||||
"jarPackageName": "xiaomayi-admin.jar",
|
||||
"servicePath": "xiaomayi-admin",
|
||||
"port": "8010",
|
||||
"javaOpts": "-server -Xms256m -Xmx4g -Xss256k",
|
||||
"serverHost01": "serverIP01"
|
||||
},
|
||||
"xiaomayi-admin-ui": {
|
||||
"deployMethod": "static",
|
||||
"projectName": "xiaomayi-admin-ui",
|
||||
"packageName": "xiaomayi-admin-ui.tar.gz",
|
||||
"servicePath": "xiaomayi-ui",
|
||||
"serverHost01": "serverIP01"
|
||||
}
|
||||
}
|
||||
}
|
||||
471
config-file/xiaomayiConfig.yml
Normal file
471
config-file/xiaomayiConfig.yml
Normal file
@ -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/xiaomayi-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@124.222.176.210" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 12422 # SSH端口号
|
||||
serverName: "S210服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@124.222.176.210" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 12422 # 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:
|
||||
# 后台系统
|
||||
xiaomayi-admin:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "xiaomayi-admin"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-admin"
|
||||
jarName: "xiaomayi-admin.jar"
|
||||
port: "8081"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "xiaomayi-web-docker-compose"
|
||||
xiaomayi-admin-ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "xiaomayi-admin-ui"
|
||||
packageName: "xiaomayi-admin-ui.tar.gz"
|
||||
servicePath: "xiaomayi-ui"
|
||||
containerName: "xiaomayi-admin-ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "xiaomayi-web-docker-compose"
|
||||
# 前台网站
|
||||
xiaomayi-web:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "xiaomayi-web2"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-web"
|
||||
jarName: "xiaomayi-web.jar"
|
||||
port: "8082"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "xiaomayi-web-docker-compose"
|
||||
483
config-file/yunhengConfig.yml
Normal file
483
config-file/yunhengConfig.yml
Normal file
@ -0,0 +1,483 @@
|
||||
# ==============================================================================
|
||||
# 通用配置块 - 包含所有环境共享的配置项
|
||||
# ==============================================================================
|
||||
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/yunheng-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@124.222.176.210" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 12422 # SSH端口号
|
||||
serverName: "S210服务器" # 服务器标识名称,用于日志和通知
|
||||
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
|
||||
weight: 50 # 负载权重(0-100),用于流量控制
|
||||
isPrimary: true # 主节点标识,优先部署
|
||||
priority: 1 # 部署优先级(数字越小优先级越高)
|
||||
|
||||
- serverIP: "esxi@124.222.176.210" # 服务器SSH连接地址(用户名@IP)
|
||||
serverPort: 12422 # 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: "maven-yunhengv4-host-dev" # Maven配置集名称
|
||||
skipTests: false # 生产构建不跳过测试
|
||||
goals: "clean package" # Maven执行目标
|
||||
options: "" # Maven选项参数
|
||||
# Docker镜像构建配置
|
||||
docker:
|
||||
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
|
||||
buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# 服务配置 - 定义每个微服务的特定配置
|
||||
# ==============================================================================
|
||||
serviceConfig:
|
||||
# 后台系统
|
||||
xiaomayi-admin:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "xiaomayi-admin"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-admin"
|
||||
jarName: "xiaomayi-admin.jar"
|
||||
port: "8081"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "xiaomayi-web-docker-compose"
|
||||
xiaomayi-admin-ui:
|
||||
programLang: "nodejs"
|
||||
programLangVersion: "22.19.0"
|
||||
deployMethod: "static"
|
||||
projectName: "xiaomayi-admin-ui"
|
||||
packageName: "xiaomayi-admin-ui.tar.gz"
|
||||
servicePath: "xiaomayi-ui"
|
||||
containerName: "xiaomayi-admin-ui"
|
||||
port: "8001"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "xiaomayi-web-docker-compose"
|
||||
# 前台网站
|
||||
xiaomayi-web:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "xiaomayi-web2"
|
||||
pomFilePath: "pom.xml"
|
||||
servicePath: "xiaomayi-modules/xiaomayi-web"
|
||||
jarName: "xiaomayi-web.jar"
|
||||
port: "8082"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "xiaomayi-web-docker-compose"
|
||||
# 健康检查
|
||||
yunheng-monitor:
|
||||
programLang: "java"
|
||||
programLangVersion: "17.0.16"
|
||||
containerName: "yunheng-monitor"
|
||||
pomFilePath: "yunheng-visual/yunheng-monitor/pom.xml"
|
||||
servicePath: "yunheng-visual/yunheng-monitor"
|
||||
jarName: "yunheng-monitor.jar"
|
||||
port: "8081"
|
||||
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
|
||||
deployServer: "servers[0]"
|
||||
composeFile: "xiaomayi-web-docker-compose"
|
||||
50
jenkins-file/nexus-maven-dev.xml
Normal file
50
jenkins-file/nexus-maven-dev.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<localRepository>/root/.m2/repository</localRepository>
|
||||
<pluginGroups>
|
||||
</pluginGroups>
|
||||
<proxies>
|
||||
</proxies>
|
||||
<servers>
|
||||
<server>
|
||||
<id>maven-dev-group</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>maven-dev-hosted</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
</servers>
|
||||
|
||||
<mirrors>
|
||||
<mirror>
|
||||
<id>maven-dev-group</id>
|
||||
<name>nexus maven</name>
|
||||
<url>http://192.168.10.102:8081/repository/maven-dev-group/</url>
|
||||
<mirrorOf>central</mirrorOf>
|
||||
</mirror>
|
||||
</mirrors>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>maven-upload</id>
|
||||
<properties>
|
||||
<altSnapshotDeploymentRepository>
|
||||
maven-snapshots::default::http://192.168.10.102:8081/repository/maven-snapshots/
|
||||
</altSnapshotDeploymentRepository>
|
||||
<altReleaseDeploymentRepository>
|
||||
maven-releases::default::http://192.168.10.102:8081/repository/maven-dev-hosted/
|
||||
</altReleaseDeploymentRepository>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<activeProfiles>
|
||||
<activeProfile>maven-upload</activeProfile>
|
||||
</activeProfiles>
|
||||
|
||||
</settings>
|
||||
50
jenkins-file/nexus-maven-prod.xml
Normal file
50
jenkins-file/nexus-maven-prod.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<localRepository>/root/.m2/repository</localRepository>
|
||||
<pluginGroups>
|
||||
</pluginGroups>
|
||||
<proxies>
|
||||
</proxies>
|
||||
<servers>
|
||||
<server>
|
||||
<id>maven-test-group</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>maven-test-hosted</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
</servers>
|
||||
|
||||
<mirrors>
|
||||
<mirror>
|
||||
<id>maven-test-group</id>
|
||||
<name>nexus maven</name>
|
||||
<url>http://192.168.10.102:8081/repository/maven-test-group/</url>
|
||||
<mirrorOf>central</mirrorOf>
|
||||
</mirror>
|
||||
</mirrors>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>maven-upload</id>
|
||||
<properties>
|
||||
<altSnapshotDeploymentRepository>
|
||||
maven-snapshots::default::http://192.168.10.102:8081/repository/maven-snapshots/
|
||||
</altSnapshotDeploymentRepository>
|
||||
<altReleaseDeploymentRepository>
|
||||
maven-releases::default::http://192.168.10.102:8081/repository/maven-test-hosted/
|
||||
</altReleaseDeploymentRepository>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<activeProfiles>
|
||||
<activeProfile>maven-upload</activeProfile>
|
||||
</activeProfiles>
|
||||
|
||||
</settings>
|
||||
50
jenkins-file/nexus-maven-test.xml
Normal file
50
jenkins-file/nexus-maven-test.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<localRepository>/root/.m2/repository</localRepository>
|
||||
<pluginGroups>
|
||||
</pluginGroups>
|
||||
<proxies>
|
||||
</proxies>
|
||||
<servers>
|
||||
<server>
|
||||
<id>maven-test-group</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>maven-test-hosted</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
</servers>
|
||||
|
||||
<mirrors>
|
||||
<mirror>
|
||||
<id>maven-test-group</id>
|
||||
<name>nexus maven</name>
|
||||
<url>http://192.168.10.102:8081/repository/maven-test-group/</url>
|
||||
<mirrorOf>central</mirrorOf>
|
||||
</mirror>
|
||||
</mirrors>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>maven-upload</id>
|
||||
<properties>
|
||||
<altSnapshotDeploymentRepository>
|
||||
maven-snapshots::default::http://192.168.10.102:8081/repository/maven-snapshots/
|
||||
</altSnapshotDeploymentRepository>
|
||||
<altReleaseDeploymentRepository>
|
||||
maven-releases::default::http://192.168.10.102:8081/repository/maven-test-hosted/
|
||||
</altReleaseDeploymentRepository>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<activeProfiles>
|
||||
<activeProfile>maven-upload</activeProfile>
|
||||
</activeProfiles>
|
||||
|
||||
</settings>
|
||||
50
jenkins-file/nexus-maven-uat.xml
Normal file
50
jenkins-file/nexus-maven-uat.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<localRepository>/root/.m2/repository</localRepository>
|
||||
<pluginGroups>
|
||||
</pluginGroups>
|
||||
<proxies>
|
||||
</proxies>
|
||||
<servers>
|
||||
<server>
|
||||
<id>maven-test-group</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>maven-test-hosted</id>
|
||||
<username>xiaomayi</username>
|
||||
<password>Xmy#123</password>
|
||||
</server>
|
||||
</servers>
|
||||
|
||||
<mirrors>
|
||||
<mirror>
|
||||
<id>maven-test-group</id>
|
||||
<name>nexus maven</name>
|
||||
<url>http://192.168.10.102:8081/repository/maven-test-group/</url>
|
||||
<mirrorOf>central</mirrorOf>
|
||||
</mirror>
|
||||
</mirrors>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>maven-upload</id>
|
||||
<properties>
|
||||
<altSnapshotDeploymentRepository>
|
||||
maven-snapshots::default::http://192.168.10.102:8081/repository/maven-snapshots/
|
||||
</altSnapshotDeploymentRepository>
|
||||
<altReleaseDeploymentRepository>
|
||||
maven-releases::default::http://192.168.10.102:8081/repository/maven-test-hosted/
|
||||
</altReleaseDeploymentRepository>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<activeProfiles>
|
||||
<activeProfile>maven-upload</activeProfile>
|
||||
</activeProfiles>
|
||||
|
||||
</settings>
|
||||
92
scripts-file/deploy.sh
Normal file
92
scripts-file/deploy.sh
Normal file
@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
schema="http://"
|
||||
registryUrl="192.168.10.102:8001"
|
||||
registryNameSpace="xiaomayi"
|
||||
user="deploy"
|
||||
pass="Harbor20240330"
|
||||
serverName=$2
|
||||
imageName="${registryUrl}/${registryNameSpace}/${serverName}"
|
||||
tag=$3
|
||||
|
||||
desc() {
|
||||
clear
|
||||
echo "==========================================================="
|
||||
echo "Deploy Containter"
|
||||
echo "==========================================================="
|
||||
echo "version 0.1"
|
||||
echo "deploy: deploy containter"
|
||||
echo "delete: delete containter"
|
||||
echo ""
|
||||
echo "==========================================================="
|
||||
echo press any key to continue && read TEMP && echo ok..
|
||||
}
|
||||
|
||||
list_image() {
|
||||
image_id=`docker inspect --format="{{.Config.Image}}" ${serverName}`
|
||||
}
|
||||
|
||||
list_process() {
|
||||
process_id=`docker inspect --format="{{.Id}}" ${serverName}`
|
||||
}
|
||||
|
||||
#pull镜像
|
||||
pull_image() {
|
||||
echo "----------------"
|
||||
echo "Pull Image"
|
||||
echo "----------------"
|
||||
docker login --username=${user} --password=${pass} ${registryUrl}
|
||||
docker pull "${imageName}:${tag}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
#运行镜像
|
||||
deploy_image() {
|
||||
echo "----------------"
|
||||
echo "Deploy Image"
|
||||
echo "----------------"
|
||||
export VERSION=${tag}
|
||||
docker compose up -d ${serverName}
|
||||
echo ""
|
||||
}
|
||||
|
||||
#停掉容器、删除容器、删除镜像
|
||||
delete_image() {
|
||||
echo "----------------"
|
||||
echo "Delete Image"
|
||||
echo "----------------"
|
||||
list_image
|
||||
list_process
|
||||
if [ "$image_id" != "" ] ; then
|
||||
if [ "$process_id" != "" ] ; then
|
||||
#停掉容器
|
||||
docker stop $process_id
|
||||
|
||||
#删除容器
|
||||
docker rm $process_id
|
||||
|
||||
#删除镜像
|
||||
docker rmi --force $image_id
|
||||
else
|
||||
#删除镜像
|
||||
docker rmi --force $image_id
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
|
||||
# main program
|
||||
case $1 in
|
||||
"deploy")
|
||||
pull_image
|
||||
delete_image
|
||||
deploy_image
|
||||
;;
|
||||
"delete")
|
||||
delete_image
|
||||
;;
|
||||
*)
|
||||
desc
|
||||
;;
|
||||
esac
|
||||
|
||||
99
scripts-file/deploy_env copy.sh
Normal file
99
scripts-file/deploy_env copy.sh
Normal file
@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
set -a
|
||||
if [ -f /etc/redhat-release ] || [ -f /etc/rocky-release ]; then
|
||||
source ./.env
|
||||
elif [ -f /etc/lsb-release ]; then
|
||||
. ./.env
|
||||
else
|
||||
echo "Unsupported OS"
|
||||
fi
|
||||
set +a
|
||||
|
||||
schema="https://"
|
||||
serverName=$2
|
||||
tag=$3
|
||||
|
||||
desc() {
|
||||
clear
|
||||
echo "==========================================================="
|
||||
echo "Deploy Containter"
|
||||
echo "==========================================================="
|
||||
echo "version 0.1"
|
||||
echo "deploy: deploy containter"
|
||||
echo "delete: delete containter"
|
||||
echo ""
|
||||
echo "==========================================================="
|
||||
echo press any key to continue && read TEMP && echo ok..
|
||||
}
|
||||
|
||||
list_image() {
|
||||
image_id=`docker inspect --format="{{.Config.Image}}" ${serverName}`
|
||||
}
|
||||
|
||||
list_process() {
|
||||
process_id=`docker inspect --format="{{.Id}}" ${serverName}`
|
||||
}
|
||||
|
||||
#pull镜像
|
||||
pull_image() {
|
||||
echo "----------------"
|
||||
echo "Pull Image"
|
||||
echo "----------------"
|
||||
imageName="${DOCKER_REGISTRY_URL}/${DOCKER_REGISTRYURL_NAMESPACE}/${serverName}"
|
||||
|
||||
echo "$DOCKER_PASSWORD" | docker login --username=${DOCKER_USERNAME} --password-stdin ${DOCKER_REGISTRY_URL}
|
||||
docker pull "${imageName}:${tag}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
#运行镜像
|
||||
deploy_image() {
|
||||
echo "----------------"
|
||||
echo "Deploy Image"
|
||||
echo "----------------"
|
||||
export VERSION=${tag}
|
||||
docker compose up -d ${serverName}
|
||||
echo ""
|
||||
}
|
||||
|
||||
#停掉容器、删除容器、删除镜像
|
||||
delete_image() {
|
||||
echo "----------------"
|
||||
echo "Delete Image"
|
||||
echo "----------------"
|
||||
list_image
|
||||
list_process
|
||||
if [ "$image_id" != "" ] ; then
|
||||
if [ "$process_id" != "" ] ; then
|
||||
#停掉容器
|
||||
docker stop $process_id
|
||||
|
||||
#删除容器
|
||||
docker rm $process_id
|
||||
|
||||
#删除镜像
|
||||
docker rmi --force $image_id
|
||||
else
|
||||
#删除镜像
|
||||
docker rmi --force $image_id
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
|
||||
# main program
|
||||
case $1 in
|
||||
"deploy")
|
||||
pull_image
|
||||
delete_image
|
||||
deploy_image
|
||||
;;
|
||||
"delete")
|
||||
delete_image
|
||||
;;
|
||||
*)
|
||||
desc
|
||||
;;
|
||||
esac
|
||||
|
||||
173
scripts-file/deploy_env.sh
Normal file
173
scripts-file/deploy_env.sh
Normal file
@ -0,0 +1,173 @@
|
||||
#!/bin/bash
|
||||
# 设置脚本执行选项:
|
||||
# -e: 遇到错误立即退出
|
||||
# -u: 遇到未定义变量报错
|
||||
# -a: 自动导出所有变量(set -a 表示自动导出,set +a 表示关闭自动导出)
|
||||
set -a
|
||||
|
||||
# 检测操作系统类型并加载环境变量文件
|
||||
# 判断是否为 RedHat 或 Rocky Linux 系统
|
||||
if [ -f /etc/redhat-release ] || [ -f /etc/rocky-release ]; then
|
||||
# 在 RedHat 系系统上使用 source 命令加载 .env 环境变量文件
|
||||
source ./.env
|
||||
# 判断是否为 Debian/Ubuntu 系统(基于LSB标准)
|
||||
elif [ -f /etc/lsb-release ]; then
|
||||
# 在 Debian 系系统上使用 . 命令加载 .env 环境变量文件
|
||||
. ./.env
|
||||
else
|
||||
# 不支持的操作系统提示
|
||||
echo "Unsupported OS"
|
||||
exit 1 # 退出脚本,返回错误码
|
||||
fi
|
||||
|
||||
# 关闭自动导出变量模式
|
||||
set +a
|
||||
|
||||
# 定义变量
|
||||
schema="https://" # 协议方案,默认为HTTPS
|
||||
serverName=$2 # 第二个参数:服务名称(如 xiaomayi-admin)
|
||||
tag=$3 # 第三个参数:镜像标签(如 prod-31)
|
||||
|
||||
# 函数:显示脚本使用说明和描述信息
|
||||
desc() {
|
||||
clear # 清屏
|
||||
echo "==========================================================="
|
||||
echo "Deploy Containter" # 脚本用途:部署容器
|
||||
echo "==========================================================="
|
||||
echo "version 0.1" # 脚本版本号
|
||||
echo "deploy: deploy containter" # 部署命令用法
|
||||
echo "delete: delete containter" # 删除命令用法
|
||||
echo ""
|
||||
echo "==========================================================="
|
||||
echo press any key to continue && read TEMP && echo ok.. # 等待用户按键继续
|
||||
}
|
||||
|
||||
# 函数:获取指定容器的镜像名称
|
||||
list_image() {
|
||||
# 使用 docker inspect 命令获取容器的镜像名称
|
||||
# --format="{{.Config.Image}}" 指定输出格式为镜像名称
|
||||
image_id=`docker inspect --format="{{.Config.Image}}" ${serverName}`
|
||||
}
|
||||
|
||||
# 函数:获取指定容器的进程ID(容器ID)
|
||||
list_process() {
|
||||
# 使用 docker inspect 命令获取容器的完整ID
|
||||
# --format="{{.Id}}" 指定输出格式为容器ID
|
||||
process_id=`docker inspect --format="{{.Id}}" ${serverName}`
|
||||
}
|
||||
|
||||
# 函数:从Docker仓库拉取镜像
|
||||
pull_image() {
|
||||
echo "----------------"
|
||||
echo "Pull Image" # 拉取镜像阶段开始
|
||||
echo "----------------"
|
||||
|
||||
# 构建完整的镜像名称
|
||||
# 格式:仓库URL/命名空间/服务名称
|
||||
imageName="${DOCKER_REGISTRY_URL}/${DOCKER_REGISTRYURL_NAMESPACE}/${serverName}"
|
||||
|
||||
# 登录到Docker仓库(使用密码管道方式,避免密码明文出现在命令行历史中)
|
||||
echo "$DOCKER_PASSWORD" | docker login --username=${DOCKER_USERNAME} --password-stdin ${DOCKER_REGISTRY_URL}
|
||||
|
||||
# 拉取指定标签的镜像
|
||||
docker pull "${imageName}:${tag}"
|
||||
echo "" # 输出空行
|
||||
}
|
||||
|
||||
# 函数:运行镜像(部署容器)
|
||||
deploy_image() {
|
||||
echo "----------------"
|
||||
echo "Deploy Image" # 部署镜像阶段开始
|
||||
echo "----------------"
|
||||
|
||||
# 设置版本环境变量,供docker-compose使用
|
||||
export VERSION=${tag}
|
||||
export DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL}
|
||||
export DOCKER_REGISTRYURL_NAMESPACE=${DOCKER_REGISTRYURL_NAMESPACE}
|
||||
export SERVER_NAME=${serverName}
|
||||
|
||||
# 使用docker compose启动服务(后台模式)
|
||||
# -d: 后台运行容器
|
||||
# ${serverName}: 只启动指定的服务
|
||||
docker compose up -d ${serverName}
|
||||
echo "" # 输出空行
|
||||
}
|
||||
|
||||
# 函数:停止并删除容器和镜像
|
||||
delete_image() {
|
||||
echo "----------------"
|
||||
echo "Delete Image" # 删除镜像阶段开始
|
||||
echo "----------------"
|
||||
|
||||
# 获取当前容器的镜像信息和进程信息
|
||||
list_image
|
||||
list_process
|
||||
|
||||
# 检查镜像是否存在
|
||||
if [ "$image_id" != "" ] ; then
|
||||
# 检查容器进程是否存在
|
||||
if [ "$process_id" != "" ] ; then
|
||||
# 停止正在运行的容器
|
||||
echo "Stopping container: $process_id"
|
||||
docker stop $process_id
|
||||
|
||||
# 删除已停止的容器
|
||||
echo "Removing container: $process_id"
|
||||
docker rm $process_id
|
||||
|
||||
# 强制删除镜像(即使有依赖也强制删除)
|
||||
echo "Removing image: $image_id"
|
||||
docker rmi --force $image_id
|
||||
else
|
||||
# 如果容器不存在,只删除镜像
|
||||
echo "Removing image: $image_id"
|
||||
docker rmi --force $image_id
|
||||
fi
|
||||
else
|
||||
echo "No image found for: ${serverName}"
|
||||
fi
|
||||
echo "" # 输出空行
|
||||
}
|
||||
|
||||
# 主程序:根据传入的参数执行不同的操作
|
||||
case $1 in
|
||||
"deploy")
|
||||
# 部署操作
|
||||
echo "Starting deployment process for ${serverName}:${tag}"
|
||||
pull_image # 第一步:拉取镜像
|
||||
delete_image # 第二步:删除旧容器和镜像(清理环境)
|
||||
deploy_image # 第三步:部署新容器
|
||||
echo "Deployment completed for ${serverName}:${tag}"
|
||||
;;
|
||||
"delete")
|
||||
# 删除操作
|
||||
echo "Starting deletion process for ${serverName}"
|
||||
delete_image # 删除容器和镜像
|
||||
echo "Deletion completed for ${serverName}"
|
||||
;;
|
||||
*)
|
||||
# 默认情况:显示帮助信息
|
||||
echo "Invalid command: $1"
|
||||
desc # 显示使用说明
|
||||
;;
|
||||
esac
|
||||
|
||||
# 脚本结束
|
||||
|
||||
# 使用示例:
|
||||
# ./deploy_env.sh deploy xiaomayi-admin prod-31
|
||||
# ./deploy_env.sh delete xiaomayi-admin
|
||||
#
|
||||
# 依赖文件:
|
||||
# .env 文件需要包含以下环境变量:
|
||||
# DOCKER_REGISTRY_URL=docker仓库地址
|
||||
# DOCKER_REGISTRYURL_NAMESPACE=命名空间
|
||||
# DOCKER_USERNAME=用户名
|
||||
# DOCKER_PASSWORD=密码
|
||||
#
|
||||
# 功能说明:
|
||||
# 1. 支持多操作系统环境检测
|
||||
# 2. 自动加载环境变量配置
|
||||
# 3. 提供完整的容器部署流程
|
||||
# 4. 支持容器清理和删除
|
||||
# 5. 安全的Docker仓库认证
|
||||
4
scripts-file/docker-env-dev.sh
Normal file
4
scripts-file/docker-env-dev.sh
Normal file
@ -0,0 +1,4 @@
|
||||
DOCKER_REGISTRY_URL="192.168.10.102:8001"
|
||||
DOCKER_REGISTRYURL_NAMESPACE="xiaomayi"
|
||||
DOCKER_USERNAME="deploy"
|
||||
DOCKER_PASSWORD="Harbor20240330"
|
||||
4
scripts-file/docker-env-prod.sh
Normal file
4
scripts-file/docker-env-prod.sh
Normal file
@ -0,0 +1,4 @@
|
||||
DOCKER_REGISTRY_URL="manage.harbor.djangoadmin.cn"
|
||||
DOCKER_REGISTRYURL_NAMESPACE="xiaomayi"
|
||||
DOCKER_USERNAME="deploy"
|
||||
DOCKER_PASSWORD="Harbor20240330"
|
||||
4
scripts-file/docker-env-test.sh
Normal file
4
scripts-file/docker-env-test.sh
Normal file
@ -0,0 +1,4 @@
|
||||
DOCKER_REGISTRY_URL="192.168.10.102:8001"
|
||||
DOCKER_REGISTRYURL_NAMESPACE="xiaomayi"
|
||||
DOCKER_USERNAME="deploy"
|
||||
DOCKER_PASSWORD="Harbor20240330"
|
||||
4
scripts-file/docker-env-uat.sh
Normal file
4
scripts-file/docker-env-uat.sh
Normal file
@ -0,0 +1,4 @@
|
||||
DOCKER_REGISTRY_URL="192.168.10.102:8001"
|
||||
DOCKER_REGISTRYURL_NAMESPACE="xiaomayi"
|
||||
DOCKER_USERNAME="deploy"
|
||||
DOCKER_PASSWORD="Harbor20240330"
|
||||
Loading…
x
Reference in New Issue
Block a user