背景
需要从测试环境harbor将测试环境镜像同步到阿里云acr镜像仓库,发现harbor1.7.0版本的同步功能不支持同步到acr,harbor1.9.0才引入同步阿里云镜像,需要将harbor低版本升级到1.9.0版本以上
现状
harbor 版本 1.7.0-rc2
操作步骤
最开始打算是从1.7.0 升级到1.8.0 再从1.8.0升级到1.9.0
升级到1.8.0成功,升级1.8.0到1.9.0过程中
sudo docker ps
发现 harbor-core组件报错,
查看 /var/log/harbor tail -f core.log 发现
[/common/dao/base.go:89]: Register database completed
[/common/dao/pgsql.go:107]: Upgrading schema for pgsql ...
[/common/dao/pgsql.go:112]: Failed to upgrade schema, error: "file does not exist"
[/core/main.go:103]: failed to initialize database: file does not exist
怀疑可能迁移工具和版本都有问题,最终尝试选择升级到1.10.7,升级成功
迁移1.7.0到1.8.0
备份
//工作目录
cd /home/ubuntu
mkdir harbor1.7.0-bak
//停止harbor
sudo docker-compose down
//备份harbor目录
cp -r harbor /home/ubuntu/harbor1.7.0-bak
//备份数据库文件
cp -r /data/database/ /home/ubuntu/harbor1.7.0-bak
// 移除原harbor文件夹
sudo rm -rf harbor
下载1.8.0安装文件
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz
下载1.8.0迁移工具
harbor提供的迁移工具
docker pull goharbor/harbor-migrator:v1.8.0
安装harbor 1.8.0
tar zxvf harbor-offline-installer-v1.8.0.tgz -C /home/ubuntu/
迁移1.7.0到1.8.0
sudo docker run -it --rm -v /home/ubuntu/harbor1.7.0-bak/harbor/harbor.cfg:/harbor-migration/harbor-cfg/harbor.cfg -v /home/ubuntu/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml docker.io/goharbor/harbor-migrator:v1.8.0 --cfg up
修改1.8.0配置
直接启动会报错
cd /home/ubuntu/harbor
vi harbor.yml
增加配置
chart:
absolute_url: disabled
安装并启动harbor
sudo ./install.sh --with-clair
验证
sudo docker ps
查看进程都正常,登录页面
迁移1.8.0到1.10.0
备份1.8.0
//工作目录
cd /home/ubuntu
mkdir harbor1.8.0-bak
//停止harbor
sudo docker-compose down
//备份harbor目录
cp -r harbor /home/ubuntu/harbor1.8.0-bak
//备份数据库文件
cp -r /data/database/ /home/ubuntu/harbor1.8.0-bak
// 移除原harbor文件夹
sudo rm -rf harbor
下载1.10.7安装文件
wget -c https://github.com/goharbor/harbor/releases/download/v1.10.7/harbor-offline-installer-v1.10.7.tgz
下载1.10.0迁移工具
harbor提供的迁移工具
docker pull goharbor/harbor-migrator:v1.10.0
安装harbor 1.10.7
tar zxvf harbor-offline-installer-v1.10.7.tgz -C /home/ubuntu/
迁移1.8.0到1.10.0
sudo docker run -it --rm -v /home/ubuntu/harbor1.8.0-bak/harbor/harbor.yml:/harbor-migration/harbor-cfg/harbor.yml -v /home/ubuntu/harbor/harbor.yml:/harbor-migration/harbor-cfg-out/harbor.yml docker.io/goharbor/harbor-migrator:v1.10.0 --cfg up
安装并启动harbor
sudo ./install.sh --with-clair
注意 harbor-core启动会比较慢,启动过程中登录会出现用户名密码错误,nginx 502 错误。 中间会存在镜像同步的流程,查看core.log和进程没问题等待同步完成,就可以登录。
验证
sudo docker ps
查看进程都正常,登录页面
harbor启动停止命令
sudo docker-compose -f ./docker-compose.yml up -d
sudo docker-compose -f ./docker-compose.yml down -v