Harbor 如何运行 OCI Distribution 规范符合性测试验证仓库行为

发布时间:2026/9/12 5:33:08
Harbor 如何运行 OCI Distribution 规范符合性测试验证仓库行为 Harbor 如何运行 OCI Distribution 规范符合性测试验证仓库行为【免费下载链接】harborAn open source trusted cloud native registry project that stores, signs, and scans content.项目地址: https://gitcode.com/GitHub_Trending/ha/harbor如果你的目标是验证 Harbor 中的镜像仓库行为是否符合 OCI Distribution 规范push、pull、内容发现、内容管理、crossmount 等请求路径Harbor 仓库内置了一条现成的测试路径tests/ci/conformance_test.sh脚本会拉取 opencontainers/distribution-spec 的符合性测试代码对一个已启动的 Harbor 实例执行go test。CI 中这条路径由 conformance_test.yml 每日定时触发cron0 6 * * *也可通过repository_dispatch事件类型manual-trigger-conformance手动触发。本文按照 CI 中的实际用法说明如何在一个 Linux 测试机上跑通这套符合性测试。前置条件根据 conformance_test.yml 的 before_install 阶段测试机需要完成以下准备。注意这些步骤会修改本机 Docker 配置、写入系统证书并重启 Docker 服务需要 root/sudo 权限只应在专用测试机上执行。# 1. 安装 docker-compose 1.23.0CI 中固定使用此版本 curl -L https://github.com/docker/compose/releases/download/1.23.0/docker-compose-uname -s-uname -m docker-compose chmod x docker-compose sudo mv docker-compose /usr/local/bin # 2. 让 Docker 信任本机 5000 端口的 registry5000 是测试 compose 中 registry 的端口见 tests/docker-compose.test.yml IPhostname -I | awk {print $1} echo {insecure-registries : [$IP:5000]} | sudo tee /etc/docker/daemon.json # 3. 安装 Harbor 自签 CA测试环境用自签证书Docker 客户端必须信任它 sudo cp ./tests/harbor_ca.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates # 4. 重启 Docker 使配置生效 sudo service docker restart其中 harbor_ca.crt 是仓库自带的自签 CA 证书generateCerts.sh 会为指定 IP 生成完整证书链。编译并启动 HarborCI 的 install 阶段执行 api_common_install.shbash ./tests/ci/api_common_install.sh $IP DB该脚本会执行sudo ./tests/generateCerts.sh $1为传入的 IP 生成证书调用 Makefile 中的compile build prepare start目标带GEN_TLStrue、TRIVYFLAGtrue、EXPORTERFLAGtrue、PULL_BASE_FROM_DOCKERHUBfalse等参数编译并启动 Harbor轮询等待启动反复请求curl -k -L -f 127.0.0.1/api/v2.0/systeminfo每 10 秒一次最多 30 次接口返回成功即认为 Harbor 已就绪。注意该脚本开头会执行sudo rm -fr /data/*清理/data目录因此只能在专门用于测试的机器上运行不要在存有数据的机器上执行。运行符合性测试Harbor 就绪后执行bash ./tests/ci/conformance_test.sh $IP$IP即前面传入的本机 IP。对照 conformance_test.sh 的正文脚本依次做了四件事拉取测试代码git clone https://github.com/opencontainers/distribution-spec.git测试用例来自该仓库的conformance目录创建两个测试项目通过 Harbor API 创建conformance和crossmount两个私有项目storage_limit: -1表示不限容量curl -w %{http_code} -H Content-Type: application/json -H Accept: application/json \ -X POST -u admin:Harbor12345 -s --insecure \ https://$IP/api/v2.0/projects \ --data {project_name:conformance,metadata:{public:false},storage_limit:-1}只有 HTTP 201 才算创建成功否则脚本退出设置 OCI 环境变量指向刚启动的 Harborexport OCI_ROOT_URLhttps://$IP export OCI_NAMESPACEconformance/testrepo export OCI_USERNAMEadmin export OCI_PASSWORDHarbor12345 export OCI_DEBUGtrue export OCI_TEST_PUSH1 export OCI_TEST_PULL1 export OCI_TEST_CONTENT_DISCOVERY1 export OCI_TEST_CONTENT_MANAGEMENT1 export OCI_CROSSMOUNT_NAMESPACEcrossmount/testrepo export OCI_AUTOMATIC_CROSSMOUNTfalse四个OCI_TEST_*开关分别启用 push、pull、内容发现、内容管理四类测试OCI_CROSSMOUNT_NAMESPACE指定 crossmount 测试使用的目标仓库OCI_DEBUGtrue打开测试侧调试输出执行测试cd ./distribution-spec/conformance go test .脚本头部有set -ego test失败会立即使脚本退出。查看测试结论与结果直接判据go test .的退出码。CI 中 script 阶段在set -e语义下运行go test失败会导致整个 workflow 失败README 顶部的 OCI Distribution Conformance Tests CI 徽章即反映该 workflow 的最新状态。测试报告CI 的收尾步骤会把生成的 HTML 报告上传到固定地址if: always()保证测试失败时也会上传aws s3 cp ./distribution-spec/conformance/report.html s3://harbor-conformance-test/report.html上传后可以在 README OCI Distribution Conformance Tests 一节给出的公开报告地址查看 Harbor 的符合性测试结果。限制与说明脚本中的凭证admin:Harbor12345是 Harbor 安装后的默认管理员账号仅适用于全新测试环境脚本对 API 使用--insecure前提是前面已安装tests/harbor_ca.crt自签 CA。仓库内置的 docker-compose.test.yml 只编排了 registry端口 5000、postgres 和 redis 三个服务是其他测试场景的轻量组合符合性测试这条路径走的是make compile build prepare start启动的完整 Harbor。测试用例的行为定义以 distribution-spec 仓库conformance目录为准本仓库只负责准备 Harbor 实例并设置OCI_*变量驱动测试不修改用例本身。【免费下载链接】harborAn open source trusted cloud native registry project that stores, signs, and scans content.项目地址: https://gitcode.com/GitHub_Trending/ha/harbor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询