Files
docker-registry/.qoder/repowiki/zh/content/kami-gateway 模块/CI_CD集成.md
danial 1ecefc80af chore(docker): 优化 Playwright 浏览器安装和配置
- 设置 PLAYWRIGHT_BROWSERS_PATH 环境变量指向 /app/.browsers
- 创建 /app/.browsers 目录用于存放浏览器文件
- 分别以 root 用户和 appuser 用户执行 Playwright 依赖和浏览器安装
- 提升 /app/.browsers 目录权限,保证 appuser 访问权限
- 调整安装步骤顺序,优化权限和用户切换流程

docs(kami-gateway): 新增 kami-gateway 模块文档及构建脚本说明

- 添加了 kami-gateway 模块的整体介绍及项目结构概述
- 详细描述了基础镜像构建流程和核心组件(Dockerfile.base 与 build-base-image.sh)
- 分析了 Go 依赖管理方式及 Docker 构建优化机制
- 介绍了 CI/CD 集成流程及自动化构建逻辑
- 阐述了性能优化措施,包括中国镜像源配置和极速构建策略
- 提供了常见故障排查指南以提高镜像构建和推送的稳定性
- 补充了安全性设计,如非 root 用户运行和证书管理

chore(docker): 更新 Go 模块代理地址

- 将 GOPROXY 从 https://goproxy.cn 更改为 https://goproxy.io
- 保持其他环境变量配置不变
- 解决国内代理访问速度或稳定性问题
2025-12-17 15:33:59 +08:00

6.0 KiB
Raw Blame History

CI/CD集成

**Referenced Files in This Document** - [README.md](file://kami-gateway/README.md) - [build-base-image.sh](file://kami-gateway/build-base-image.sh)

目录

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

引言

本文档系统性地描述了kami-gateway模块在Drone CI环境下的自动化构建与发布流程。重点说明CI配置如何监听kami-gateway目录变更触发build-base-image.sh脚本执行以及环境变量在CI流水线中的作用机制。通过分析自动化流程展示其在提升构建效率和保障环境一致性方面的优势。

项目结构

kami-gateway模块包含构建基础Docker镜像所需的核心文件。项目结构设计清晰将构建脚本、配置文件和源代码组织在独立目录中便于CI/CD系统识别和处理变更。

graph TD
A[kami-gateway/] --> B[README.md]
A --> C[build-base-image.sh]
A --> D[go.mod]
A --> E[go.sum]

Diagram sources

Section sources

核心组件

kami-gateway的CI/CD流程围绕两个核心组件构建build-base-image.sh构建脚本和README.md中的CI/CD说明文档。构建脚本负责执行具体的镜像构建、标记和推送操作而文档则定义了CI系统的触发条件和工作流程。

Section sources

架构概述

kami-gateway的CI/CD架构采用事件驱动模式当kami-gateway目录发生变更时Drone CI系统被触发执行预定义的构建流水线。该流水线调用构建脚本完成从代码到容器镜像的转换并根据配置决定是否将镜像推送到远程仓库。

graph LR
A[代码仓库变更] --> B{Drone CI触发}
B --> C[执行build-base-image.sh]
C --> D[构建本地镜像]
D --> E{REGISTRY != localhost:5000?}
E --> |是| F[标记并推送镜像]
E --> |否| G[仅本地构建]
F --> H[通知完成]
G --> H

Diagram sources

详细组件分析

构建脚本分析

build-base-image.sh脚本是自动化流程的核心执行单元,负责处理镜像的构建、标记和推送逻辑。

环境变量注入与处理

flowchart TD
Start([开始]) --> Config["配置环境变量"]
Config --> REGISTRY["REGISTRY = ${DOCKER_REGISTRY:-git.oceanpay.cc/danial}"]
Config --> VERSION["VERSION = ${VERSION:-latest}"]
REGISTRY --> Display["显示Registry: $REGISTRY"]
VERSION --> Display
Display --> Build["构建本地镜像"]

Diagram sources

条件推送逻辑

flowchart TD
Check["检查REGISTRY值"]
Check --> Condition{"REGISTRY != localhost:5000?"}
Condition --> |真| Tag["标记远程镜像"]
Condition --> |假| SkipTag["跳过标记"]
Tag --> Push["推送镜像到仓库"]
SkipTag --> Complete["构建完成"]
Push --> Complete

Diagram sources

Section sources

CI/CD流程说明

流水线触发机制

sequenceDiagram
participant Repo as 代码仓库
participant Drone as Drone CI
participant Script as build-base-image.sh
Repo->>Drone : kami-gateway/目录变更
Drone->>Drone : 检测到变更
Drone->>Script : 执行构建脚本
Script->>Script : 设置环境变量
Script->>Script : 构建本地镜像
Script->>Script : 条件性推送
Script-->>Drone : 返回状态
Drone-->>Repo : 更新构建状态

Diagram sources

依赖分析

kami-gateway的CI/CD流程依赖于外部系统和环境配置包括Drone CI平台、Docker运行时环境和镜像仓库服务。这些依赖关系确保了构建流程的完整性和可靠性。

graph TD
A[Drone CI] --> B[kami-gateway模块]
C[Docker Engine] --> B
D[镜像仓库] --> B
B --> E[应用部署]

Diagram sources

Section sources

性能考量

kami-gateway的CI/CD流程设计注重效率和资源优化。通过条件构建机制避免了不必要的镜像推送操作特别是在本地测试环境中。基础镜像缓存和预下载依赖包的设计显著缩短了构建时间实现了10-30秒内的快速构建。

故障排除指南

当CI/CD流程出现问题时应首先检查环境变量是否正确注入特别是DOCKER_REGISTRYVERSION。确认Drone CI是否正确检测到kami-gateway目录的变更并验证构建脚本的执行权限。对于推送失败的情况需检查网络连接和镜像仓库的访问凭证。

Section sources

结论

kami-gateway模块的CI/CD集成通过自动化构建与发布流程实现了高效的开发运维实践。Drone CI系统能够准确监听目录变更并触发构建环境变量的灵活注入机制支持多环境部署而条件推送逻辑则有效避免了本地测试时的无效操作。这一自动化流程不仅提升了构建效率还保障了不同环境间的一致性为持续交付提供了可靠的基础。