Mac上安装harbor

在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

harbor arm 版镜像编译-CSDN博客

https://github.com/goharbor/harbor-arm

编译ARM版Harbor

我主要解决的问题是在基于Mac电脑的虚拟环境来使用harbor,所以就直接用第三方编译好的ARM环境harbor了。

(1)安装docker&docker-compose

这里就不多赘述了。

(2)第三方版本

这里采用的是:https://github.com/wise2c-devops/build-harbor-aarch64

可以直接下载打包好的文件:

https://github.com/wise2c-devops/build-harbor-aarch64/releases/download/v2.10.2/harbor-offline-installer-aarch64-v2.10.2.tgz

解压缩包:

tar -zxvf harbor-offline-installer-aarch64-v2.10.2.tgz

我这里是把解压缩后的包放到 /home/zhangzk/harbor  这个目录。

(3)生成证书

创建一个目录 /opt/cert 并且进入目录:

sudo mkdir /opt/cert && cd /opt/cert

创建一个配置文件 openssl.cnf,内容如下:

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[dn]
C = CN
ST = State
L = Locality
O = Organization
OU = Organizational Unit
CN = harbor.igmwx.com

[req_ext]
subjectAltName = @alt_names

[alt_names]
DNS.1 = harbor.igmwx.com

生成私钥和证书签名请求 (CSR):

openssl req -new -sha256 -nodes -out harbor.csr -newkey rsa:2048 -keyout harbor.key -config openssl.cnf

使用 CSR 和配置文件生成自签名证书:

openssl x509 -req -in harbor.csr -signkey harbor.key -out harbor.crt -days 365 -extfile openssl.cnf -extensions req_ext

(4)修改harbor的配置文件 harbor.yml

hostname: harbor.igmwx.com
data_volume: /home/zhangzk/harbor/data
log:
  local:
    location: /home/zhangzk/harbor/logs
http:
  port: 80
https:
  port: 443
  certificate:  /opt/cert/server.crt
  private_key:  /opt/cert/server.key

(5)安装harbor

在harbor的目录下执行: sudo ./install.sh 

zhangzk@zhangzk:~/harbor$ sudo ./install.sh 

[Step 0]: checking if docker is installed ...

Note: docker version: 26.1.3

[Step 1]: checking docker-compose is installed ...

Note: Docker Compose version v2.27.0

[Step 2]: loading Harbor images ...
Loaded image: goharbor/harbor-prepare-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-exporter-base:v2.10.2-aarch64
Loaded image: goharbor/redis-photon:v2.10.2-aarch64
Loaded image: goharbor/harbor-trivy-adapter-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-nginx-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-portal-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-db-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-exporter:v2.10.2-aarch64
Loaded image: goharbor/harbor-redis-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-registryctl:v2.10.2-aarch64
Loaded image: goharbor/harbor-registryctl-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-log-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-jobservice-base:v2.10.2-aarch64
Loaded image: goharbor/trivy-adapter-photon:v2.10.2-aarch64
Loaded image: goharbor/registry-photon:v2.10.2-aarch64
Loaded image: goharbor/harbor-core:v2.10.2-aarch64
Loaded image: goharbor/harbor-core-base:v2.10.2-aarch64
Loaded image: goharbor/harbor-portal:v2.10.2-aarch64
Loaded image: goharbor/harbor-registry-base:v2.10.2-aarch64
Loaded image: goharbor/nginx-photon:v2.10.2-aarch64
Loaded image: goharbor/harbor-log:v2.10.2-aarch64
Loaded image: goharbor/harbor-jobservice:v2.10.2-aarch64
Loaded image: goharbor/harbor-db:v2.10.2-aarch64
Loaded image: goharbor/prepare:v2.10.2-aarch64


[Step 3]: preparing environment ...

[Step 4]: preparing harbor configs ...
prepare base dir is set to /home/zhangzk/harbor
Clearing the configuration file: /config/db/env
Clearing the configuration file: /config/log/rsyslog_docker.conf
Clearing the configuration file: /config/log/logrotate.conf
Clearing the configuration file: /config/registry/passwd
Clearing the configuration file: /config/registry/root.crt
Clearing the configuration file: /config/registry/config.yml
Clearing the configuration file: /config/registryctl/env
Clearing the configuration file: /config/registryctl/config.yml
Clearing the configuration file: /config/portal/nginx.conf
Clearing the configuration file: /config/nginx/nginx.conf
Clearing the configuration file: /config/jobservice/env
Clearing the configuration file: /config/jobservice/config.yml
Clearing the configuration file: /config/core/app.conf
Clearing the configuration file: /config/core/env
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
loaded secret from file: /data/secret/keys/secretkey
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir


Note: stopping existing Harbor instance ...
WARN[0000] /home/zhangzk/harbor/docker-compose.yml: `version` is obsolete 


[Step 5]: starting Harbor ...
WARN[0000] /home/zhangzk/harbor/docker-compose.yml: `version` is obsolete 
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                                                                                                                                 0.0s 
 ✔ Container harbor-log         Started                                                                                                                                                 0.2s 
 ✔ Container harbor-portal      Started                                                                                                                                                 0.4s 
 ✔ Container redis              Started                                                                                                                                                 0.5s 
 ✔ Container registry           Started                                                                                                                                                 0.5s 
 ✔ Container registryctl        Started                                                                                                                                                 0.5s 
 ✔ Container harbor-db          Started                                                                                                                                                 0.5s 
 ✔ Container harbor-core        Started                                                                                                                                                 0.7s 
 ✔ Container harbor-jobservice  Started                                                                                                                                                 0.8s 
 ✔ Container nginx              Started                                                                                                                                                 0.9s 
✔ ----Harbor has been installed and started successfully.----

(6)关闭和启动harbor

  进入harbor的目录下后执行如下如下命令:

docker-compose down -v
docker-compose up -d

(7)浏览器访问

终端OK: curl -k https://harbor.igmwx.com

但是chrome/safari浏览器都访问不了:https://harbor.igmwx.com,主要是自己使用的证书的证书链不完整,导致浏览器认为不够安全,需要把生成的证书加入到信任中去。

这个时候firfox很好用,可以直接忽视。

账号/密码:admin/Harbor12345

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Mac安装Harbor,你可以按照以下步骤进行操作: 1. 首先,确保你的Mac已经安装了Docker。你可以在终端中运行以下命令来检查是否安装了Docker: ``` docker version ``` 2. 如果你没有安装Docker,可以从Docker官方网站下载并安装最新版本的Docker Desktop for Mac。 3. 接下来,你需要下载Harbor安装包。你可以在Harbor的官方GitHub仓库中找到最新版本的安装包:https://github.com/goharbor/harbor/releases 4. 选择适用于MacOS的二进制文件(通常是以`.tar.gz`或`.zip`为扩展名),下载并解压缩它。 5. 打开终端,并使用`cd`命令切换到解压缩后的Harbor目录。 6. 在终端中运行以下命令启动Harbor安装程序: ``` sudo ./install.sh ``` 7. 安装程序将会提示你输入管理员密码。输入密码后,安装过程将开始。 8. 安装完成后,你可以通过以下命令启动Harbor: ``` sudo harbor start ``` 9. 等待一段时间,直到终端中显示Harbor已成功启动。 10. 现在,你可以在Web浏览器中访问`http://localhost`来访问Harbor的用户界面。默认的管理员用户名为`admin`,密码为`Harbor12345`。你可以在初始登录后更改密码。 注意:如果你使用的是macOS Catalina或更高版本,并且遇到了权限问题,可以尝试在终端中运行以下命令来授权Harbor的二进制文件: ``` chmod +x ./harbor ``` 这样就完成了在Mac安装Harbor的过程。希望对你有帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值