Harbor 定制页面 和 二次开发指南
harbor的官方地址:https://github.com/goharbor/harbor
想对Harbor进行二次开发,首先要指定一个harbor的版本,这里我们以Harbor:1.6.2为例:
下载指定版本的Harbor:https://github.com/goharbor/harbor/tree/release-1.6.0
查看指定版本的官方文档:https://github.com/goharbor/harbor/blob/release-1.6.0/docs/compile_guide.md
这里要注意,一定要看指定版本的文档,否则会有意想不到的报错!友情提示!!!
第一步:需要准备的环境:
| Software | Required Version |
|---|---|
| docker | 1.12.0 + |
| docker-compose | 1.11.0 + |
| python | 2.7 + |
| git | 1.9.1 + |
| make | 3.81 + |
| golang* | 1.7.3 + |
| *optional, required only if you use your own Golang environment. |
注意:这里没有指定操作系统,我是在Centos下做的,在mac是compile是可以的,但是不能install, 看报错是因为mac下没有/var/lib/docker/tmp/****,报no such file***错
环境准备完成后就可以开始了:
第二步:下载代码:
官方的文档是git clone下的代码,由于我公司服务器对外访问受限,所以我都是下载在本机,然后通过xftp拷贝到centos上的。注意版本
第三步:Building and installing Harbor
1. 修改配置:
官方这里是修改配置,但我没有改,也一样运行和访问,这里就跳过了。
2.Build with offical Golang image
1)编译和运行:
这里官方给出了两种方案:第二种方案,我没有成功,所以这里只记录第一种方案:
先拉取go的镜像:
docker pull golang:1.9.
执行Make命令install
$ make install GOBUILDIMAGE=golang:1.9. COMPILETAG=compile_golangimage CLARITYIMAGE=goharbor/harbor-clarity-ui-builder:1.6.
这里解释一下,执行的make install命令在makefile中有定义

执行的是如下命令:
install: compile version build modify_sourcefiles prepare modify_composefile start
这里是把UI JobService AdminService等几个模块,全部编译,build成镜像 等一系列操作,然后start。
因为我是只修改了UI部分,所以我修改了一部署make的代码,只构建也ui的image。
在执行:compiling binary for clarity ui.. 这个过程中特别耗时,不知道它在做什么操作,请了解的请赐教。
还有我在服务器ui_ng目录下直接运行npm run build总是报错,所以我根本就运行不起来,只能通过镜像的方式验证修改的结果,这点比较悲催。
前端代码如下:

登录界面如下:

前端代码的dockerfile文件:
FROM photon:1.0 RUN tdnf distro-sync -y \
&& tdnf erase vim -y \
&& tdnf install sudo -y >> /dev/null\
&& tdnf clean all \
&& groupadd -r -g 10000 harbor && useradd --no-log-init -r -g 10000 -u 10000 harbor \
&& mkdir /harbor/ HEALTHCHECK CMD curl --fail -s http://127.0.0.1:8080/api/ping || exit 1
COPY ./make/dev/ui/harbor_ui ./src/favicon.ico ./make/photon/ui/start.sh ./UIVERSION /harbor/
COPY ./src/ui/views /harbor/views
COPY ./src/ui/static /harbor/static RUN chmod u+x /harbor/start.sh /harbor/harbor_ui
WORKDIR /harbor/ ENTRYPOINT ["/harbor/start.sh"]
这个harbor_ui就是所有前端代码的压缩了。
图片放在/harbor/static下了。它是把./src/ui/static 这里的图片copy过去的。
它是如何把前端代码压缩到./make/dev/ui/harbor_ui这里的,其实我没有找到:
只找到了这样一句命令:不太理解它的意思。
/usr/bin/docker run --rm -v /root/go/src/github.com/goharbor/harbor:/go/src/github.com/vmware/harbor -w /go/src/github.com/vmware/harbor/src/ui golang:1.9. /usr/local/go/bin/go build -o /go/src/github.com/vmware/harbor/make/dev/ui/harbor_ui
dev版本 也是默认版本,最后的生成的文件结构,dockfile在这里执行

构建成功后,我用docker-compose起一个harbor的运行环境,然后修改它的yml文件,把ui的镜像改成dev版本,就能测试我的结果了。
很笨拙。我还没有找到更好的办法,先用再,再研究。
// stop harbor
docker-compose -f ./docker-compose.yml -f ./docker-compose.clair.yml -f ./docker-compose.chartmuseum.yml down // start harbor
docker-compose -f ./docker-compose.yml -f ./docker-compose.clair.yml -f ./docker-compose.chartmuseum.yml up -d
Harbor 定制页面 和 二次开发指南的更多相关文章
- ECSHOP二次开发指南
ECSHOP二次开发指南 发布时间:2013-05-28 12:47:00 来源: 评论:0 点击: 次 [字号:大 中 小] QQ空间新浪微博腾讯微博人人网豆瓣网百度空间百度搜藏开心网复制更 ...
- [PC]PHPCMS二次开发指南(上)
------------------------------------------------------------------------------------- PHPCMS本身功能已经很完 ...
- PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…
PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 ...
- ECMALL模板解析机制.MVC架构分析及文件目录说明.二次开发指南手册(转)
ECMALL模板解析语法与机制 http://www.nowamagic.net/architecture/archt_TemplateSyntaxAndAnalysis.php ECMALL模块开发 ...
- ECShop二次开发指南(一)
ECSHOP是一套完整的网络商店解决方案,包括前台的商品展示.购物流程和强大易用的后台管理.由于 ecshop简单易用,使用者几乎可以在3几分钟简单的设置一下就可以拥有一个网上商店系统,所以很多的B2 ...
- sitemap.xml 静态和动态生成页面 shopnc二次开发 动态生成sitemap.xml
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页.最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间.更改的 ...
- ECShop二次开发指南-文件结构(二)
ecshop文件架构说明 注意:因各版权不一,大概参考/* ECShop 2.5.1 的结构图及各文件相应功能介绍 ECShop2.5.1_Beta upload 的目录 ┣ activity.p ...
- ECSHOP - 二次开发指南---购物车篇
第一个问题 保存用户购物车数据ECSHOP的购物车数据,是以Session 方式存储在数据库里,并在Session结束后 ,Distroy 掉,解决方法是: 1.购物车内容读取方式. 更改登陆后购物车 ...
- 现代前端库开发指南系列(二):使用 webpack 构建一个库
前言 在前文中,我说过本系列文章的受众是在现代前端体系下能够熟练编写业务代码的同学,因此本文在介绍 webpack 配置时,仅提及构建一个库所特有的配置,其余配置请参考 webpack 官方文档. 输 ...
随机推荐
- 【c++】【常用函数】
分割字符串:https://www.cnblogs.com/zealousness/p/9971709.html 字符串比较:https://www.cnblogs.com/zealousness/p ...
- Theme Section---hdu4763(kmp, Next数组的运用)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4763 题意就是求s串中满足EAEBE格式的E的最大长度:我们可以枚举前缀和后缀的所有匹配(k)看是否在 ...
- Linux 下线程的理解
2017-04-03 最近深入研究了下Linux线程的问题,发现自己之前一直有些许误解,特记之…… 关于Linux下的线程,各种介绍Linux的书籍都没有深入去解释的,或许真的如书上所述,Linux本 ...
- Python慢,为啥还有大公司用?
PyCon 是全世界最大的以 Python 编程语言 为主题的技术大会,大会由 Python 社区组织,每年举办一次.在 Python 2017 上,Instagram 的工程师们带来了一个有关 Py ...
- Zabbix3的离线安装
背景与环境 由于实际情况需求,zabbix在局域网中进行部署,遇到许多问题,在此记录. 操作系统:CentOS 6.9(使用的最小安装) zabbix版本:zabbix-3.0.13(LTS) php ...
- linux rhel unix centos FreeBSD 常用命令
一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /pr ...
- matlab 保存图片的几种方式
最近在写毕业论文, 需要保存一些高分辨率的图片. 下面介绍几种MATLAB保存图片的 方式. 一. 直接使用MATLAB的保存按键来保存成各种格式的图片 你可以选择保存成各种格式的图片, 实际上对于 ...
- Creating an AVI in memory with C++
Creating an AVI in memory with C++ The following example demonstrates how an avi file is comp ...
- zen-cart安装出现时区错误解决办法
有时候在安装zen-cart的时候出现时区错误,提示: ERROR: date.timezone not set in php.ini. Please contact your hosting com ...
- 前端学习笔记之HTML DOM操作
HTML DOM 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). DOM节点类型 文档节点 (document,唯一) 元素节点 (那些个标签div ...