diff --git a/config-file/imagesConfig.yml b/config-file/imagesConfig.yml new file mode 100644 index 0000000..810f3df --- /dev/null +++ b/config-file/imagesConfig.yml @@ -0,0 +1,231 @@ +# ============================================================================== +# 基础镜像构建配置文件 +# 版本: 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 # 克隆操作超时时间(分钟) + + # ============================================================================== + # 镜像仓库配置 - 定义不同的容器镜像仓库 + # ============================================================================== + 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" + + # 环境配置文件 - 定义不同环境的特定配置 + profiles: + # -------------------------------------------------------------------------- + # 开发环境配置 - 用于开发测试,部署频率高,配置相对宽松 + # -------------------------------------------------------------------------- + dev: + # 容器镜像 + registry: "default" + # -------------------------------------------------------------------------- + # 测试环境配置 - 用于集成测试,配置接近生产环境 + # -------------------------------------------------------------------------- + test: + # 容器镜像 + registry: "default" + # -------------------------------------------------------------------------- + # 用户验收测试环境配置 - 模拟生产环境,用于最终验收测试 + # -------------------------------------------------------------------------- + uat: + # 容器镜像 + registry: "default" + # -------------------------------------------------------------------------- + # 生产环境配置 - 线上真实环境,配置最为严格 + # -------------------------------------------------------------------------- + prod: + # 容器镜像 + registry: "default" + + # 通知配置 - 构建结果通知设置 + notification: + # 构建成功通知配置 + success: + # 收件人列表 - 成功时通知的邮箱地址 + recipients: ["xiaomayicloud@163.com"] + # 通知渠道 - 使用的通知方式 + channels: ["email", "slack"] + # 构建失败通知配置 + failure: + # 收件人列表 - 失败时通知的邮箱地址 + recipients: ["xiaomayicloud@163.com"] + # 通知渠道 - 失败时使用的通知方式 + channels: ["email", "slack", "sms"] + # 构建不稳定通知配置 + unstable: + # 收件人列表 - 不稳定时通知的邮箱地址 + recipients: ["xiaomayicloud@163.com"] + # 通知渠道 - 不稳定时使用的通知方式 + channels: ["email"] + + # 构建策略 - 构建过程的策略配置 + buildStrategy: + retryCount: 3 # 构建失败重试次数 + timeoutMinutes: 60 # 构建超时时间(分钟) + cleanupWorkspace: true # 构建完成后是否清理工作空间 + enableCaching: true # 是否启用Docker构建缓存 + +# ============================================================================== +# 分支构建配置 - 定义不同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" # 版本化标签(包含版本和系统信息) + - "latest" # 最新版本标签 + + # 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" # 详细版本标签 + - "latest" # 最新标签 + + # 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" # 包含系统和版本信息的标签 + - "latest" # 默认最新标签 + + # 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" # 版本和系统组合标签 + - "latest" # 最新版本标签