树莓派上搭建HARBOR私有仓库服务!

不建议说明:

虽然博主花了很多时间去完成这篇博文,目的是在树莓派上运行HARBOR,但博主不再推荐这篇博文了,因为这种修改太复杂了,并且不可能长久化。另外一个原因是,博主找到了一个更加适合在树莓派上运行的基于WEB的可视化方案。详见:https://github.com/Joxit/docker-registry-ui。本篇博文中的内容,仅供兴趣研究使用。

前言:

博主一直有个这样的怨念,一直想建立一个基于ARM架构的,具有WEB管理功能的可视化镜像仓库,用于备份或保存一些私有镜像文件;虽然我确实已经利用了DOCKER的"registry"镜像,在树莓派上建立了私有镜像仓库,可惜,那毕竟只是命令行形式的管理,离可视化管理的便利性还是差非常的远!于是,我便瞄上了HARBOR这个开源仓库工具,一轮测试下来,感觉良好!于是,便开始了在基于ARM架构的树莓派上搭建HARBOR的计划,至官方网站搜索相关资料……崩溃了,最低要求4核心CPU并要求最少4GB的RAM……当时最新的树莓派3B也只有1GB的RAM啊!!!研究了一下,CPU四核心的要求算时满足了,4GB RAM嘛~这不能阻止我!于是至官方网站,下载最新版本的HARBOR安装文件,在导入DOCKER镜像文件后,再次崩溃……镜像文件全是X86或AMD64架构的,很明显,ARM架构的CPU是不可能存在X86或AMD64的指令集的!!当然,我依然不想放弃,强行用这些镜像去启动HARBOR服务,结果很明显,不可能运行起来!!!

那就用X86架构的CPU去搭建HARBOR服务吧?不好意思,博主还是有那么一点点的极客精神的,什么样的需求就用什么样性能的计算机,对一个个人应用的私有镜像仓库,树莓派的性能已经严重过剩了!另外还有一点原因很重要,那些廉价拼装X86服务器的稳定性完全无法匹比完全集成化的树莓派!博主可不想每几个月就查看一下服务器为什么提供不了服务,博主要的是一个建立了服务后,就基本不需要管理的服务器!另外,X86的服务器,更别提那糟糕的功耗与体积了。所以,因为博主的偏执,这个基于HARBOR的私人的镜像仓库的服务器,博主放弃了。

就这样过去了快一年了吧?博主突然想写点什么,于是最近就写了个关于HARBOR的搭建教程,在复测博文代码及资料时,意外的在DOCKER-HUB官方仓库上发现了一组基于ARM架构的HARBOR镜像,于是博主重新燃起在树莓派上架设HARBOR的执念!然而,事实证明,这世上的事往往总是不会那么的顺利!使用那一组ARM镜像建立起的HARBOR服务,总是各式各样的报错!HARBOR服务根本无法正常运行!说实在的,此时的博主很不服气啊!!!已经有了ARM的镜像了,也就意味ARM的HARBOR程序文件已经存在了,而这种程序文件又一定是基于官方的代码编译的,也就意味着,这个ARM架构的程序文件是不会出错的!既然程序文件不会错,那么,就一定是相关的配置问题了!!!那时博主做了自认为非常SB的事,不如自己提取相关资料,并参照官方的X86 HARBOR服务配置,重新构建这些镜像吧……事实证明,这的确是一件非常SB的事。在这之后,博主花费了一周时间,敲了数千条命令,各种测试,手腕都痛了……还好,这一件SB的事终于有点回报了,博主终于在树莓派上非完全正常的启动起HARBOR服务并较为正常的使用了,这之后便是一些简单的错误修复了。至最后,这一组基于ARM的HARBOR服务镜像终于面世了!!当然,一组镜像文件只包括了10[HARBOR]+1[自建]个镜像文件,只能运行起最基本HARBOR服务,但这对个人或少量人员使用的私有仓库来说,这已经完全足够了!!

顺便一提,X86完整的HARBOR安装文件是包括了大约16个镜像,这当中的一些镜像是为实现其它功能而存在的,比如说K8S,明显,这些镜像一般对个人使用的私有仓库完成没未必。如果你想用这一套镜像去玩集群或K8S,缺失的镜像文件自己去研究哦~~

博主本来是想把这一篇博文写成教程的,但显然是不可能了……因为这当中包括了太多的知识点了,无能为力了。下面,本博文将主要介绍的时如何使用这一组镜像文件,在你的树莓派上架设属于你的私有HARBOR仓库。另外,这是独家的哦,不信你可以百度或GOOGLE一下,看看存不存在,在树莓派上安装HARBOR的教程,反正博主搜了一年,答案是不存在。

一、硬件与软件环境

只在这下两个硬件上测试通过,原因是我只有这两个硬件,理论上应该所有ARM架构CPU所运行的操作系统上都能运行!

  • 硬       件 :[ Raspberry Pi 4 Model B -- RAM:4G ] 或 [ Raspberry Pi 3 Model B -- RAM:1G ]

  • 操作系统 :Raspbian Buster Lite

  • HARBOR版本 :非官方

  • DOCKER版本 :19.03.6

  • DOCKER-COMPOSE版本:1.25.4

  • 代码测试日期:2020年03月22日

二、DOCKER环境构建

对于DOCKER环境的构建,博主一直是推荐从官方页面获取安装方法的[官方地址];当然,这里没有树莓派安装DOCKER的方法。关于DOCKER的安装,我写烦了,直接看下面:

三、HARBOR安装[在线][已删除所有镜像]

这是在线安装方式,优点是使用最新的镜像,这可能会有一些更新[绝对不会多],这是离线安装无法实现的,但你得体验那如洪水猛兽般的下载速度;

至此,如果你没有修改[ harbor.yml ]文件中的任何配置,现在你可以通过浏览器访问树莓派的IP,以使用HARBOR服务;你也可以使用域名[ https://harbor.raspberry.home ] 访问HARBOR服务,但别忘记修改本地的[ hosts ]文件以实现本地DNS解释;

默认用户名:admin

默认密码  :lemonsys.cn

四、HARBOR安装[离线]

这是离线安装方式,博主强烈推荐,虽然离线安装包中的镜像文件不是最新的,但由于DOCKER镜像的构成方式及镜像的更新改动不会太大,由于已经存在了基础的DOCKER镜像层,这将使更新非常快,这非常适合国内用户。离线安装包下载见"五、下载";以下为离线安装包的安装方法;

至此,如果你没有修改[ harbor.yml ]文件中的任何配置,现在你可以通过浏览器访问树莓派的IP,以使用HARBOR服务;你也可以使用域名[ https://harbor.raspberry.home ] 访问HARBOR服务,但别忘记修改本地的[ hosts ]文件以实现本地DNS解释;

默认用户名:admin

默认密码  :lemonsys.cn

五、测试

由于官方表明至少需要4G的RAM,于是我也很好奇HARBOR是否需要这么多的资源。测试结果如下图,空载运行的情况,内存的占用情况实际非常的小,即使1G的RAM也足够运行;如果仅参考内存占用情况,我甚至怀疑"Raspberry Pi Zero"也能良好运行!如果你只是个人使用,或者是人数不多的小团队使用,只要不是非常频繁上传或拉取镜像,用一个树莓派架设一个私有的镜像仓库,实际上也是是可行的。当然,空载运行怎么能作参考?我没这环境测试,也就这样估计了,读者可能自己实际测试。

关于官方4G RAM的要求,估计是表明当完全启用HARBOR所有功能并能满足一定强度负载时所需要的最低环境需求吧,这里就不再讨论了。

树莓派上搭建HARBOR私有仓库服务!

树莓派上搭建HARBOR私有仓库服务!

Raspberry Pi 4 Model B && Raspberry Pi 4 Model B

六、下载

此处提供文件下载的链接,这包含:构建镜像用的源码、离线安装包、基于ARM架构的DOCKER-COMPOSE镜像文件、一些说明文件;

百度网盘:https://pan.baidu.com/s/1vbX8W9nDF4TGA-ZZFEPy9w; 提取码:chel ; 

七、重要说明

你可以使用以下命令去获取关于使用这一组镜像去启用HARBOR服务的重要说明。实际上这一组镜像限制了安装位置,包括安装目录的名称、数据存储的位置及名称、日志存储的位置及目录名称。除此你可以改变任何"harbor.yml"中的内容,比如说密码或域名;博主当然可以修改"step_2_fix"脚本的内容使这一组镜像支持任何路径上的改动,但显然博主不想这么做,因为博主的手腕痛……另一方面原因是,服务安装在"/opt"下也并无不妥,而数据存放位置的改变,也可以通过软链接解决。

另外,如果存在更新信息,我会写在这上面[ DOCKER HUB :https://hub.docker.com/r/onelucksnake/raspharbor_readme  ];博文就不更新相关信息了。

八、其它

这是关于"onelucksnake/raspharbor_redis"镜像的补充说明,你极有可能从REDIS的启动日志中看到某条警告信息,是关于系统内存策略的警告;注意,该条警告信息是无法通过修改镜像文件而消除的,这是DOCKER的限制。如果你希望你的REDIS镜像启动日志看起来更漂亮,你可以修改你树莓派上的内核参数,方法如下;

《完》

树莓派上搭建HARBOR私有仓库服务!:等您坐沙发呢!

发表评论

表情
还能输入210个字