1. 程式人生 > >Harbor 定製頁面 和 二次開發指南

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.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。

還有我在伺服器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版本,就能測試我的結果了。

很笨拙。我還沒有找到更好的辦法,先用再,再研究。