先装置好Docker,docker-compose
华为云arm架构装置Docker
arm架构装置docker-compose
Harbor官网: https://github.com/goharbor/h...
Harbor官网没有提供arm架构的包,须要本人编译,我编译好的版本是:harbor-1.9.1
大家能够按我的博客,本人去编译,或评论留言给我,我发给大家
我编译好的版本是: harbor-1.9.1
arm架构下编译Harbor
#下载源码包 https://github.com/goharbor/harbor/archive/v1.9.1.tar.gzwget 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#主机IPhostname: 122.9.0.1#明码harbor_admin_password: Harbor12345#批改数据保留目录data_volume: /data1/harborlog: 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.0find ./ -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 /harborCOPY ./make/photon/registry/entrypoint.sh /COPY ./make/photon/registry/binary/bin/registry /usr/binvim make/photon/registryctl/Dockerfile#批改为: COPY ./make/photon/registry/binary/bin/registry /usr/bin#如下:COPY ./make/photon/common/install_cert.sh /harborCOPY ./make/photon/registry/binary/bin/registry /usr/binCOPY ./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.1make install GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.9.1 PKGVERSIONTAG=v1.9.1 UIVERSIONTAG=v1.9.1
编译完查看Harbor启动状况
docker ps#redis 始终在重启 Restartinggoharbor/redis-photon:v1.9.1 "redis-server /etc/r…" 6 minutes ago Restarting (139) 19 seconds ago goharbor/redis-photon:v1.9.1 查看日志报错如下:<jemalloc>: Unsupported system page size
华为云arm架构docker启动redis报错:<jemalloc>: Unsupported system page size
#再次查看docker ps#harbor-core 始终在重启 Restartinggoharbor/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 shdocker exec -ti harbor-db psql#执行sqlpsql\l\c registry\c registryTRUNCATE TABLE project_blob;#退出\q #查看日志tail -f /var/log/harbor/core.log#进行harbordocker-compose stop#启动harbordocker-compose start#最终解决了下面的问题vim common/config/core/envCLAIR_DB_PORT=5432#还有这个问题:[FATAL] [/core/main.go:185]: failed to initialize database: register db Ping `default`, pq: password authentication failed for user "postgres"#删除databasemkdir /data1/cert/rm -rf /data1/databasehttps://github.com/goharbor/harbor/issues/7609#其实我还做了件事件,进入harbor-db的容器 执行了以下命令su - postgrespsqlalter 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.1docker ps#发现所有harbor相干的服务都启动OK了,示意装置结束
拜访Harbor
浏览器拜访
http://122.9.0.1/
默认账号/明码: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#重启dockersystemctl 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 -ddocker-compose topdocker-compose psdocker-compose stopdocker-compose start 再次启动docker-compose down 停用移除所有容器docker-compose logs
Harbor相干镜像保留到网盘
把编译胜利的镜像保存起来
有须要的,能够评论留言,发给大家
docker save -o goharbor_harbor-jobservice_arm64.tar goharbor/harbor-jobservice:v1.9.1docker save -o goharbor_nginx-photon_arm64.tar goharbor/nginx-photon:v1.9.1docker save -o goharbor_harbor-core_arm64.tar goharbor/harbor-core:v1.9.1docker save -o goharbor_registry-photon_arm64.tar goharbor/registry-photon:v2.7.1-v1.9.1docker 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.1docker save -o goharbor_harbor-db_arm64.tar goharbor/harbor-db:v1.9.1docker save -o goharbor_redis-photon_arm64.tar goharbor/redis-photon:v1.9.1docker save -o goharbor_harbor-log_arm64.tar goharbor/harbor-log:v1.9.1docker save -o goharbor_prepare_arm64.tar goharbor/prepare:v1.9.1docker save -o photon_arm64.tar photon:3.0docker save -o debian_arm64.tar debian:buster-slimdocker save -o golang_1_12_12_arm64.tar golang:1.12.12docker save -o golang_1_11_arm64.tar golang:1.11 docker load -i goharbor_harbor-jobservice_arm64.tar
参考链接:
https://bbs.huaweicloud.com/f...