Files
docker-registry/.qoder/repowiki/zh/content/项目概述/kami-gateway 模块/CI_CD集成与自动化.md
danial 1a0a86bfeb chore(ci): 注释所有 drone.yml 中的触发分支配置
- 更改服务器主机地址和端口号
- 注释掉 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命令以匹配新注册表地址
2025-12-17 15:34:04 +08:00

7.8 KiB
Raw Blame History

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工作流程图反映最新的服务器配置
  • 更新了依赖分析图,包含最新的服务器信息

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构概述
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

简介

本文档全面介绍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流程的稳定性和可控性。