- 更改服务器主机地址和端口号 - 注释掉 main、master、develop、production 分支的触发器配置 - 取消自动触发事件的推送限制 - 保持 pipeline 配置完整性但禁用触发条件 - 方便后续手动触发或调整 CI 流程设置 chore(ci): 更新服务器地址和pipeline触发器配置,调整基础镜像代理设置 - 更新spider-base-image和alpine-base-image的服务器地址为38.55.194.49:3422 - 为main、master、develop和production分支的pipeline添加触发器注释,禁用自动执行 - 修改.dron.yml文件,恢复pipeline触发器的配置启用推送事件触发 - 更新kami-gateway和相关模块构建文档,反映最新的服务器地址和CI/CD配置变更 - 注释Dockerfile.base中的GOPROXY环境变量,将中国代理从goproxy.cn替换为goproxy.io - 移除Alpine Linux阿里云镜像源配置,更新文档中相关代理和构建指引说明 - 增加依赖版本说明,包括新增goquery、stomp、zap等依赖版本精确声明 - 优化故障排查指南,提醒检查新的服务器地址和代理配置影响 chore(ci): 更新Docker注册表地址为新的域名 - 将Spider镜像构建中Docker注册表地址由git.oceanpay.cc改为git.domainpay.top - 将Gateway镜像构建中Docker注册表地址由git.oceanpay.cc改为git.domainpay.top - 将Alpine基础镜像构建中Docker注册表地址由git.oceanpay.cc改为git.domainpay.top - 修改对应的docker login与logout命令以匹配新注册表地址
7.8 KiB
CI/CD集成与自动化
**本文档中引用的文件** - [build-base-image.sh](file://kami-gateway/build-base-image.sh) - [README.md](file://kami-gateway/README.md) - [build-base-image.sh](file://kami-spider-monorepo/build-base-image.sh) - [build-base-image.sh](file://alpine-base/build-base-image.sh) - [.drone.yml](file://.drone.yml)更新摘要
已做更改
- 更新了服务器地址信息,将spider-base-image和alpine-base-image的服务器地址迁移至38.55.194.49:3422
- 为所有主要分支(main, master, develop, production)的pipeline触发器添加注释以禁用自动执行
- 更新了架构概述和CI/CD工作流程图,反映最新的服务器配置
- 更新了依赖分析图,包含最新的服务器信息
目录
简介
本文档全面介绍kami-gateway模块与Drone CI等持续集成系统的集成方案。文档解析了构建脚本中的环境变量控制逻辑,说明了如何实现条件化构建与镜像推送,阐述了变更检测机制如何避免不必要的镜像重建,展示了在CI流水线中如何安全地注入凭证并执行构建任务,并讨论了镜像标签策略的最佳实践。本文档已根据最新的配置更新,包含服务器地址迁移至38.55.194.49:3422,以及为所有主要分支(main, master, develop, production)的pipeline触发器添加注释以禁用自动执行。
项目结构
项目包含多个模块的构建脚本,每个模块都有独立的构建配置。kami-gateway模块作为重点分析对象,其构建流程代表了整个项目的CI/CD实践标准。
Section sources
核心组件
kami-gateway模块的核心构建组件是build-base-image.sh脚本,该脚本负责创建包含Go环境和Alpine运行时的基础Docker镜像。脚本实现了环境变量控制、条件构建、镜像标记和推送等关键功能。
Section sources
架构概述
kami-gateway的CI/CD架构基于Drone CI系统,通过变更检测机制触发条件化构建流程。构建脚本与CI系统协同工作,实现了高效的镜像构建和推送流程。根据最新配置,spider-base-image和alpine-base-image的服务器地址已迁移至38.55.194.49:3422,而gateway-base-image仍使用38.38.251.113:34156。
graph TB
subgraph "CI/CD Pipeline"
Trigger["变更检测\n(Drone CI)"] --> Condition["条件判断\n(目录变更)"]
Condition --> Build["执行构建\n(build-base-image.sh)"]
Build --> Push["镜像推送\n(Registry)"]
end
subgraph "构建脚本"
Env["环境变量控制\n(VERSION, DOCKER_REGISTRY)"] --> Build
Proxy["代理配置\n(USE_PROXY)"] --> Build
Tagging["镜像标记策略\n(latest, version)"] --> Build
end
Trigger --> Build
Build --> Push
**Diagram sources **
详细组件分析
构建脚本分析
kami-gateway的构建脚本实现了完整的CI/CD流程,包括环境变量配置、镜像构建、标记和推送等步骤。
环境变量控制逻辑
flowchart TD
Start([开始]) --> Registry["REGISTRY=\n${DOCKER_REGISTRY:-git.oceanpay.cc/danial}"]
Registry --> Version["VERSION=\n${VERSION:-latest}"]
Version --> UseProxy["USE_PROXY=\n${USE_PROXY:-0}"]
UseProxy --> Build["执行docker build"]
Build --> ConditionalTag["条件标记\n(REGISTRY != localhost:5000)"]
ConditionalTag --> Push["条件推送\n(REGISTRY != localhost:5000)"]
Push --> End([完成])
**Diagram sources **
Section sources
CI/CD工作流程
sequenceDiagram
participant Drone as "Drone CI"
participant Script as "build-base-image.sh"
participant Docker as "Docker Engine"
participant Registry as "镜像仓库"
Drone->>Script : 检测到kami-gateway/目录变更
Script->>Script : 初始化环境变量
Script->>Docker : 执行docker build
Docker-->>Script : 返回构建结果
Script->>Script : 检查REGISTRY配置
alt 非本地仓库
Script->>Docker : 执行docker tag
Script->>Registry : 执行docker push
Registry-->>Script : 返回推送结果
end
Script->>Drone : 返回构建状态
**Diagram sources **
镜像标签策略
kami-gateway采用多标签策略,为每个构建版本创建两个标签:版本号标签和latest标签,确保既有版本追溯性又有最新版本可用性。
Section sources
依赖分析
各模块的构建脚本具有相似的结构和逻辑,表明项目采用了统一的构建标准。kami-gateway模块作为Go应用的代表,其构建流程为其他模块提供了参考模式。根据最新配置,spider-base-image和alpine-base-image现在共享相同的服务器地址38.55.194.49:3422。
graph TB
alpine-base --> kami-gateway
kami-gateway --> kami-spider-monorepo
common["通用构建模式"] --> alpine-base
common --> kami-gateway
common --> kami-spider-monorepo
server1["服务器: 38.55.194.49:3422"] --> spider-base-image
server1 --> alpine-base-image
server2["服务器: 38.38.251.113:34156"] --> gateway-base-image
**Diagram sources **
Section sources
性能考虑
通过条件化构建和变更检测机制,系统避免了不必要的镜像重建,显著提升了资源利用率。基础镜像缓存机制将应用构建时间缩短至10-30秒,Go模块预下载避免了重复下载,多阶段构建优化了最终镜像体积。
Section sources
故障排除指南
当CI/CD流程出现问题时,应首先检查环境变量配置是否正确,特别是DOCKER_REGISTRY和VERSION变量。确认变更检测机制是否正常工作,检查构建脚本的条件判断逻辑是否按预期执行。对于服务器连接问题,请验证服务器地址38.55.194.49:3422和38.38.251.113:34156的可达性。
Section sources
结论
kami-gateway模块的CI/CD集成方案展示了高效的自动化构建实践。通过环境变量控制、条件化构建、变更检测和多标签策略,系统实现了资源高效利用和版本可追溯性的平衡。该方案可作为其他模块的参考模板,并可根据需要扩展支持多平台构建和自动化安全扫描等高级功能。根据最新更新,服务器地址已迁移至38.55.194.49:3422,且所有主要分支(main, master, develop, production)的pipeline触发器已添加注释以禁用自动执行,确保了CI/CD流程的稳定性和可控性。