Harbor项目开发指南:从环境搭建到代码贡献全流程

Harbor项目开发指南:从环境搭建到代码贡献全流程

【免费下载链接】harbor Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制 【免费下载链接】harbor 项目地址: https://gitcode.com/GitHub_Trending/ha/harbor

前言

Harbor作为企业级云原生镜像仓库解决方案,其开源特性吸引了众多开发者的参与。本文将系统性地介绍Harbor项目的开发环境搭建、代码结构解析以及规范的贡献流程,帮助开发者快速融入Harbor社区。

一、开发环境准备

1.1 后端开发环境

Harbor后端采用Go语言开发,不同版本对Go的要求如下表所示:

Harbor版本所需Go版本
2.14.x1.24.3
2.13.x1.23.8
2.12.x1.23.2

建议使用gvm等工具管理多版本Go环境。配置完成后需验证:

go version

1.2 前端开发环境

前端基于Angular框架和Clarity UI组件库,版本对应关系:

Harbor版本Angular要求Clarity要求
2.4.x12.0.35.3.0
2.3.x10.1.24.0.2

需安装Node.js和npm包管理工具:

node -v
npm -v

二、代码结构深度解析

2.1 核心目录结构

harbor/
├── src/                # 主代码目录
│   ├── core/          # 核心业务逻辑
│   ├── jobservice/    # 异步任务服务
│   ├── portal/        # 前端界面
│   ├── registryctl/   # 镜像仓库控制
│   └── server/        # API服务层
├── tests/             # 测试用例
└── make/              # 构建脚本

2.2 关键模块说明

  1. core模块

    • 包含认证、配置、代理等核心功能
    • 采用controller-manager-dao分层架构
    • 核心业务逻辑处理入口
  2. jobservice模块

    • 异步任务调度系统
    • 支持定时任务和一次性任务
    • 任务状态持久化存储
  3. portal模块

    • 基于Angular的单页应用
    • 使用@harbor/ui组件库
    • 采用RxJS进行状态管理

三、开发流程规范

3.1 代码获取与分支管理

推荐的工作流:

# 设置工作目录
export GOPATH=$HOME/go
mkdir -p $GOPATH/src/github.com/goharbor

# 克隆代码
git clone https://github.com/goharbor/harbor.git
cd harbor

# 创建特性分支
git checkout -b feat-1234-add-new-feature main

3.2 代码质量保障

  1. 静态检查

    # 安装检查工具
    go install golang.org/x/lint/golint@latest
    
    # 运行检查
    go list ./... | grep -v -E 'tests' | xargs -L1 golint
    
  2. 单元测试

    # 运行后端测试
    go test -v ./...
    
    # 运行前端测试
    cd src/portal/lib
    npm run test
    

3.3 API开发规范

从v2.0开始采用OpenAPI规范:

  1. 修改api/v2.0/swagger.yaml
  2. 生成API代码:
    make gen_apis
    
  3. src/server/v2.0/handler实现业务逻辑

四、测试与验证

4.1 CI流程说明

提交PR后会触发两类测试:

  1. 静态检查

    • golint代码规范检查
    • go vet静态分析
    • 竞态条件检测
  2. 端到端测试

    • 镜像推送/拉取验证
    • 安全扫描测试
    • 用户认证集成测试
    • 签名验证测试

4.2 本地验证建议

推荐使用make工具进行完整验证:

# 编译全部组件
make compile

# 构建安装包
make package

# 启动本地环境
make install

五、提交规范

5.1 提交消息格式

示例:

feat(api): add new image scan API

Add new REST API for triggering image scanning with optional parameters:
- scan_type: specify vulnerability database
- force_rescan: ignore cache

Closes #1234
Signed-off-by: John Doe <john.doe@example.com>

5.2 签名要求

所有提交必须包含DCO签名:

git commit -s -m "commit message"

六、新功能开发建议流程

  1. 在社区仓库创建开发建议
  2. 使用标准建议模板
  3. 添加kind/suggestion标签
  4. 在社区会议讨论架构设计
  5. 获得批准后开始开发

结语

参与Harbor项目开发需要遵循规范的开发流程,但这也是学习优秀开源项目架构的绝佳机会。建议从解决小的issue开始,逐步深入理解系统架构,最终成为核心贡献者。开发过程中如遇问题,可以通过社区会议或讨论组寻求帮助。

【免费下载链接】harbor Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制 【免费下载链接】harbor 项目地址: https://gitcode.com/GitHub_Trending/ha/harbor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值