Harbor在arm架构下亲测编译成功

网友投稿 679 2022-10-23

Harbor在arm架构下亲测编译成功

先安装好Docker,docker-compose

Harbor官网: harbor-1.9.1

arm架构下编译Harbor

#下载源码包 https://github.com/goharbor/harbor/archive/v1.9.1.tar.gz wget https://codeload.github.com/goharbor/harbor/tar.gz/v1.9.1 #解压harbor源码包 tar -zxvf v1.9.1.tar.gz #进入源码根目录 cd harbor-1.9.1 #编辑 harbor.yml 配置文件,修改其中的参数,例如主机名、密码等信息。 vim make/harbor.yml #hostname = reg.mydomain.com #主机IP hostname: 122.9.0.1 #密码 harbor_admin_password: Harbor12345 #修改数据保存目录 data_volume: /data1/harbor log: location: /data1/var/log/harbor #harbor从1.6版本之后仅支持PostgreSQL数据库作为外部数据库,之前版本可以使用mysql #可以使用外部的redis #也可以使用自带的redis,就不要放开注释 external_redis: host: 192.168.1.1 port: 6379 password: beyond2020 #修改 Dockerfile,将 photon:2.0 修改为 photon:3.0,是因为 photon 3.0 才开始支持 aarch64。 #有可能是photon:1.0 修改为 photon:3.0 find ./ -type f|grep "Dockerfile$"|grep -v "\.D"|xargs sed -i "s#photon:2.0#photon:3.0#g" find ./ -type f|grep "Dockerfile$"|grep -v "\.D"|xargs sed -i "s#photon:1.0#photon:3.0#g" #启动编译组件功能。 vim Makefile ... ... BUILDBIN=true ... ... REGISTRYVERSION=v2.7.1 ... ... #修改以下几个文件,这几处是软件存在的 BUG,请知悉。 vim make/photon/Makefile #修改为: /binary/bin/registry #如下: @echo "building registry container for photon..." @chmod 655 $(DOCKERFILEPATH_REG)/binary/bin/registry && $(DOCKERBUILD) -f $(DOCKERFILEPATH_REG)/$(DOCKERFILENAME_REG) -t $(DOCKERIMAGENAME_REG):$(REGISTRYVERSION)-$(VERSIONTAG) . @echo "Done." vim make/photon/registry/Dockerfile #修改为: COPY ./make/photon/registry/binary/bin/registry /usr/bin #如下 COPY ./make/photon/common/install_cert.sh /harbor COPY ./make/photon/registry/entrypoint.sh / COPY ./make/photon/registry/binary/bin/registry /usr/bin vim make/photon/registryctl/Dockerfile #修改为: COPY ./make/photon/registry/binary/bin/registry /usr/bin #如下: COPY ./make/photon/common/install_cert.sh /harbor COPY ./make/photon/registry/binary/bin/registry /usr/bin COPY ./make/photon/registryctl/start.sh /harbor/ COPY ./make/photon/registryctl/harbor_registryctl /harbor/ #拉取 golang 1.12.12 官网镜像。 docker pull golang:1.12.12 #编译、安装和启动 harbor 服务,开启 Notary 和 Clair 功能,执行如下命令。 cd harbor-1.9.1 make install GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.9.1 PKGVERSIONTAG=v1.9.1 UIVERSIONTAG=v1.9.1

编译完查看Harbor启动情况

docker ps #redis 一直在重启 Restarting goharbor/redis-photon:v1.9.1 "redis-server /etc/r…" 6 minutes ago Restarting (139) 19 seconds ago goharbor/redis-photon:v1.9.1 查看日志报错如下: : Unsupported system page size

#再次查看 docker ps #harbor-core 一直在重启 Restarting goharbor/harbor-core:v1.9.1 "/harbor/harbor_core" 8 minutes ago Restarting (1) 4 seconds ago #查看日志报错 [ERROR] [/common/config/manager.go:118]: loadSystemConfigFromEnv failed, config item, key: clair_db_port, err: strconv.Atoi: parsing "": invalid syntax [FATAL] [/core/main.go:185]: failed to initialize database: register db Ping `default`, pq: password authentication failed for user "postgres" #进入容器 docker-compose exec postgresql sh docker exec -ti harbor-db psql #执行sql psql \l \c registry \c registry TRUNCATE TABLE project_blob; #退出 \q #查看日志 tail -f /var/log/harbor/core.log #停止harbor docker-compose stop #启动harbor docker-compose start #最终解决了上面的问题 vim common/config/core/env CLAIR_DB_PORT=5432 #还有这个问题: [FATAL] [/core/main.go:185]: failed to initialize database: register db Ping `default`, pq: password authentication failed for user "postgres" #删除database mkdir /data1/cert/ rm -rf /data1/database https://github.com/goharbor/harbor/issues/7609 #其实我还做了件事情,进入harbor-db的容器 执行了以下命令 su - postgres psql alter role postgres with password 'root123'; #然后我又创建了上面那个路径,再harbor-compose重启了 然后就好了,我后来又关闭, 删了 /data1/cert/ 又好了,真不知道是什么动作影响了结果。 #如果使用外部的redis, 注释掉redis的编译打镜像,重新编译, 成功了 vim harbor-1.9.1/make/photon/Makefile #如下: _build_redis: @echo "building redis container for photon..." #注释了redis的编译打镜像 #@$(DOCKERBUILD) -f $(DOCKERFILEPATH_REDIS)/$(DOCKERFILENAME_REDIS) -t $(DOCKERIMAGENAME_REDIS):$(REDISVERSION) . @echo "Done." #重新编译 make install GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.9.1 PKGVERSIONTAG=v1.9.1 UIVERSIONTAG=v1.9.1 docker ps #发现所有harbor相关的服务都启动OK了,表示安装完毕

访问Harbor

#浏览器访问默认账号/密码:admin/Harbor12345

Docker配置Harbor仓库地址

vim /etc/docker/daemon.json #增加下面内容,harbor默认端口为80情况,如果非80,需要在IP后加端口 #{"insecure-registries":["harbor服务端IP"]} {"insecure-registries":["122.9.0.1"]} #重新加载配置 systemctl daemon-reload #重启docker systemctl restart docker #登录成功 docker login 122.9.0.1 输入账户和密码 #或者 docker login 122.9.0.1 -u admin -p Harbor12345 #推送镜像到Harbor仓库 docker push 122.9.0.1/library/test:1.0

docker-compose相关命令

docker-compose up -d docker-compose top docker-compose ps docker-compose stop docker-compose start 再次启动 docker-compose down 停用移除所有容器 docker-compose logs

Harbor相关镜像保存到网盘

把编译成功的镜像保存起来

有需要的,可以评论留言,发给大家

docker save -o goharbor_harbor-jobservice_arm64.tar goharbor/harbor-jobservice:v1.9.1 docker save -o goharbor_nginx-photon_arm64.tar goharbor/nginx-photon:v1.9.1 docker save -o goharbor_harbor-core_arm64.tar goharbor/harbor-core:v1.9.1 docker save -o goharbor_registry-photon_arm64.tar goharbor/registry-photon:v2.7.1-v1.9.1 docker save -o goharbor_harbor-registryctl_arm64.tar goharbor/harbor-registryctl:v1.9.1 docker save -o goharbor_harbor-portal_arm64.tar goharbor/harbor-portal:v1.9.1 docker save -o goharbor_harbor-db_arm64.tar goharbor/harbor-db:v1.9.1 docker save -o goharbor_redis-photon_arm64.tar goharbor/redis-photon:v1.9.1 docker save -o goharbor_harbor-log_arm64.tar goharbor/harbor-log:v1.9.1 docker save -o goharbor_prepare_arm64.tar goharbor/prepare:v1.9.1 docker save -o photon_arm64.tar photon:3.0 docker save -o debian_arm64.tar debian:buster-slim docker save -o golang_1_12_12_arm64.tar golang:1.12.12 docker save -o golang_1_11_arm64.tar golang:1.11 docker load -i goharbor_harbor-jobservice_arm64.tar

参考链接:https://bbs.huaweicloud.com/forum/thread-40503-1-1.html

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用 mybatis 自定义日期类型转换器的示例代码
下一篇:阿里云通过API经济激活第三产业的新能量
相关文章

 发表评论

评论列表