搞了一下午终于部署成功,还是需要培养看日志分析的习惯。。。
记录一下部署过程及排障
1、安装部署docker、docker-compose,以下是我自己的版本,仅供参考
2、下载harbor,直接用wget或者到github下载包拉到服务器上,我选择了2.3.3版本的https://github.com/goharbor/harbor/releases
3、解压包到 /usr/local/
tar -xvzf harbor-online-installer-v2.3.3.tgz -C /usr/local/
4、进入/usr/local/harbor,修改配置文件harbor.yml
(注意:很多教程采用一些较旧的harbor版本,配置文件叫harbor.cfg,但某个新版本之后改为了harbor.yml,具体看自己解压出来有没有cfg文件或者百度)
我修改了五个地方,分别是:
- hostname:必须修改,改为本机已有的hostname或者自己设定的ip
- port:默认80,http端口,可以不改
- https:必须修改,全部注释掉
- harbor_admin_password:harbor密码,可以不改
- data_volume:数据挂载目录,可以不改
5、执行prepare、install.sh文件,因为我是在线安装包,所以就要等它慢慢慢慢下载完。
./prepare
./install.sh
看到这句提示就成功了
6、正常来说,这里你从浏览器就可以进入harbor了。地址是:http://hostname:port,就是上面你在harbor.yml设定的两个参数,如果没有修改port就是http://hostname。
排障
1、输入账号密码之后,提示harbor核心服务不可用
2、查看服务状态,可以看到harbor-db一直在restarting,先把容器停掉
docker-compose ps
docker-compose down -v
3、看来是数据库有问题,查看一下日志
cat /var/log/harbor/postgresql.log
4、initdb: error: directory “/var/lib/postgresql/data/pg13“ exists but is not empty。
提示说目录已存在且不为空,那就删掉它。这里提示说的容器内的路径,我们要先找到在本机挂载的路径。
rm -rf /data/database/pg13
5、之后根据其他教程的经验,还要修改一下database的权限,很多教程是让我们去修改pg13的权限,但是因为上面我们已经删除了,那干脆给它上一级目录权限
chown -R polkitd:input /data/database/
6、除了harbor-db启动不了以外,我还碰过了redis也启动不了的情况,报错日志显示:
Fatal error loading the DB: Invalid argument. Exiting.
cat /var/log/harbor/redis.log
参考了大佬的教程,删除dump解决了问题。
这里大佬的dump文件是一个,我自己find出来了两个,最后两个都删除了才成功
7、最后重启harbor服务
docker-compose up -d
然后去登录harbor就可以了