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 官方文档. 输 ...
随机推荐
- 使用nginx搭建文件下载服务器
搭建一个文件服务器的方式有很多,本文介绍笔者曾经用过的两种: 使用nginx 使用java服务,通过controller提供 一.使用nginx搭建 在nginx.conf中直接配置server即可, ...
- SyntaxError: Missing parentheses in call to 'print'. Did you mean print('XXXXXX')?
因为Python3中取消了以前Python 2中的语法. 所以Python 3再使用python2的语法格式就会报错 错误信息中提示需要加上括号,字符串可以用单引号或双引号括起来 这样就不会报错了.
- 如何理解PHP的单例模式
单例模式就是让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源. PHP的单例模式实现要求: 1.一个private的__construct是必须的,单例类不能在其它类中实例化,只 ...
- repo使用
repo常用指令: 1.repo init(下载repo并克隆manifest) repo init -u URL [OPTIONS] Options: -u:制定一个URL,其连接到一个manife ...
- MongoDB简单CRUD场景
MongoDB简单CRUD命令操作 (1)新建数据库:use 数据库名 (2)显示所有数据库:show dbs; (3)新建集合(两种方式) 隐式创建:在创建集合的同时往集合里面添加数据---db. ...
- Oracle DB 使用RMAN将数据库移植到ASM存储区
1. 完全关闭数据库. 2. 关闭数据库并修改服务器参数文件,以使用Oracle Managed Files (OMF). 3. 编辑并执行以下RMAN 脚本: STARTUP NOMOUNT; RE ...
- JVM内存分配原理
堆栈常量池等内存分配原理详解 存储的方式: 寄存器 栈(stack) 堆(heap) 静态域 常量池 非RAM存储 JAVA寄存器 最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. ...
- 解决wordcloud导出图片不清楚
使用WordCloud生成词云图片 本文详细介绍参考自:https://www.jianshu.com/p/fdd0acccf1c5 wordcloud开源项目:https://github.com/ ...
- XVII Open Cup named after E.V. Pankratiev Grand Prix of Moscow Workshops, Sunday, April 23, 2017 Problem D. Great Again
题目: Problem D. Great AgainInput file: standard inputOutput file: standard outputTime limit: 2 second ...
- django之路由(url)
前言: Django大致工作流程 1.客户端发送请求(get/post)经过web服务器.Django中间件. 到达路由分配系统 2.路由分配系统根据提取 request中携带的的url路径(path ...