编译 Harbor 需要 docker,docker-compose,python,git,make,go环境等,具体要求如下表
Software | Required Version |
---|---|
docker | 17.05 + |
docker-compose | 1.18.0 + |
python | 2.7 + |
git | 1.9.1 + |
make | 3.81 + |
golang* | 1.15.6 + |
其中 golang 为可选项,如果想使用自己的 golang 环境,则就需要安装,否则不需要,一般情况下,建议直接使用官方 golang 镜像即可
git clone https://github.com/goharbor/harbor
从源码编译 harbor 各个组件的镜像,tag值比如为 v3.0.0,镜像存放在本地
make build -e DEVFLAG=false COMPILETAG=compile_golangimage VERSIONTAG=v3.0.0
完成后搜索镜像如下:
[root@node1 harbor]# docker images | grep harbor |grep v3.0.0
goharbor/harbor-exporter v3.0.0 aa2b04d6bd6e 41 seconds ago 96.2MB
goharbor/redis-photon v3.0.0 d4add902ed22 59 seconds ago 165MB
goharbor/harbor-registryctl v3.0.0 a4435d398f5c About a minute ago 134MB
goharbor/registry-photon v3.0.0 3e1747aa237e 2 minutes ago 78.1MB
goharbor/nginx-photon v3.0.0 14a28d36b486 3 minutes ago 45MB
goharbor/harbor-log v3.0.0 9caba2b11401 3 minutes ago 159MB
goharbor/harbor-jobservice v3.0.0 1b6f469183ad 4 minutes ago 241MB
goharbor/harbor-core v3.0.0 d16215207e8f 5 minutes ago 207MB
goharbor/harbor-portal v3.0.0 43081afe66fb 6 minutes ago 53.6MB
goharbor/harbor-db v3.0.0 6a355218db09 8 minutes ago 225MB
goharbor/prepare v3.0.0 6eb9a65377f6 9 minutes ago 254MB
[root@node1 harbor]#
比如这里 2.1 节已经编译好了 v3.0.0 的镜像,然后这里将镜像推送到私有镜像goharbor,比如 192.168.16.40:10010/goharbor/ 下,注意这里因为上面打的镜像是 goharbor,因此这里在私有的Harbor上必须创建名为 goharbor 的项目,此外,在推送之前首先需要登录一下 harbor,如下:
docker login 192.168.16.40:10010 -u xxx -p xxx
然后使用如下命令推送镜像
make pushimage -e DEVFLAG=false COMPILETAG=compile_golangimage VERSIONTAG=v3.0.0 REGISTRYSERVER=192.168.16.40:10010/ REGISTRYUSER=xxxx REGISTRYPASSWORD=xxxx REGISTRYPROJECTNAME=goharbor
完成后即可在私有的 Harbor 上发现已经存在镜像了
执行如下命令,即可生成一个离线安装版
make package_offline -e DEVFLAG=false COMPILETAG=compile_golangimage VERSIONTAG=v3.0.1
此时会生成 harbor-offline-installer-dev.tgz 压缩包,然后参照 Harbor----使用 Harbor 安装包安装部署 Harbor 进行本地安装验证,这里不再详细展开
首先编辑 harbor.yml 文件
cp make/harbor.yml.tmpl make/harbor.yml
vi make/harbor.yml
为了简单起见,这里只修改 hostname ,然后把 https 配置注释掉
然后执行如下命令,编译并安装
make install -e DEVFLAG=false COMPILETAG=compile_golangimage VERSIONTAG=v3.0.2