在Mac Book + VMware Fusion 虚拟出来的 ubuntu(22.04.4)的环境中安装官方离线版本 harbor-offline-installer-v2.10.2.tgz会出现如下错误:
prepare base dir is set to /home/zhangzk/harbor
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec /usr/bin/python3: exec format error
错误的原因是运行的Docker镜像是为x86_64(或称为amd64)架构构建的,而MacBook运行的是基于ARM的Apple Silicon(如M1或M2芯片),其架构为arm64/v8。
解决这个问题需要使用适用于ARM架构的harbor镜像。
有两种办法,
1、需要自行编译ARM环境的harbor镜像;
2 、使用第三编译好的harbor镜像;
关于编译ARM环境的harbor镜像有很多介绍文章可供参考(未实践尝试过):
鲲鹏服务器 ARMV8架构Harbor-2.3.0编译部署-云社区-华为云
5.5 harbor编译arm版本 · kubernetes
https://github.com/goharbor/harbor-arm
我主要解决的问题是在基于Mac电脑的虚拟环境来使用harbor,所以就直接用第三方编译好的ARM环境harbor了。
(1)安装docker&docker-compose
这里就不多赘述了。
(2)第三方版本
https://github.com/wise2c-devops/build-harbor-aarch64
(3)生成证书
sudo mkdir /opt/cert && cd /opt/cert
sudo openssl genpkey -algorithm RSA -out ca.key
sudo openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt -subj "/CN=Harbor-ca"
sudo openssl genrsa -out server.key 4096
sudo openssl req -new -sha256 -subj "/CN=harbor.igmwx.com" -key server.key -out server.csr
sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650 -sha256
(4)修改配置文件 harbor.yml
hostname: harbor.igmwx.com
data_volume: /home/zhangzk/harbor/data
https:certificate: /opt/cert/server.crt
https:private_key: /opt/cert/server.key
log:local:location: /home/zhangzk/harbor/logs
(5)浏览器访问
终端OK: curl -k https://harbor.igmwx.com
但是chrome/safari浏览器都访问不了:https://harbor.igmwx.com,主要是自己使用的证书的证书链不完整,导致浏览器认为不够安全,需要把生成的证书加入到信任中去。
这个时候firfox很好用,可以直接忽视。
账号/密码:admin/Harbor12345