• 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

    这里要注意,一定要看指定版本的文档,否则会有意想不到的报错!友情提示!!!

    第一步:需要准备的环境:

    SoftwareRequired 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.2

    执行Make命令install

       $ make install GOBUILDIMAGE=golang:1.9.2 COMPILETAG=compile_golangimage CLARITYIMAGE=goharbor/harbor-clarity-ui-builder:1.6.0

    这里解释一下,执行的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.2 /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
  • 相关阅读:
    邻居子系统 之 邻居项创建__neigh_create
    邻居子系统 之 邻居表的初始化neigh_table_init
    IP输出 之 分片ip_fragment、ip_do_fragment
    IP输出 之 ip_output、ip_finish_output、ip_finish_output2
    邻居子系统输出 之 neigh_output、neigh_hh_output
    IP输出 之 ip_local_out
    TCP->IP输出 之 ip_queue_xmit、ip_build_and_send_pkt、ip_send_unicast_reply
    TCP输出 之 tcp_transmit_skb
    TCP输出 之 tcp_write_xmit
    TCP层sendmsg系统调用的实现分析
  • 原文地址:https://www.cnblogs.com/hankuikui/p/10083343.html
Copyright © 2020-2023  润新知