因为公司的Gitlab没有给我那么高权限,所以我必须做一个我个人拥有最高权限的镜像代码仓库,不然drone在做ci的时候是获取不到代码仓库列表的,注意新建的代码仓库如果是用IP访问的话,Gitlab默认是无法推送镜像到目标仓库的,因为有一个安全设置需要更改,需要管理员权限去进行开启,我这里连蒙带骗糊弄我们运维帮我开了,大概是在Admin Area里设置,你可以先试试直接镜像,如果报错的话你可以用错误信息自行查询。
废话不多说,整!
使用Docker部署Gitea
假设你的服务器已经安装了Docker环境,那么直接执行以下命令:
docker run -d --privileged=true --restart=always --name=gitea -p 1022:22 -p 3000:3000 -v /var/lib/gitea:/data gitea/gitea:latest
之后访问ip:3000,可以打开一个初始化页面,只需要把页面上所有的localhost更改成你的ip就可以了,之后提交,Gitea就部署完成了。
创建镜像仓库
打开gitea注册账号,点击右上角创建仓库,只需更改仓库名称,建议和Gitlab要镜像的仓库名称保持一致,配置后提交:

将http链接保存以备用。
GitLab镜像仓库到Gitea
说实话Gitlab这个推送镜像仓库实在是太简便了,如图:

这里的仓库url就是Gitea的仓库链接,但微妙的还有些不一样,这里需要在连接前面加上@用户名,比如你的gtiea的仓库链接是http://192.168.1.1:3000/username/testrepo.git,那么这里要填的就是http://username@192.168.1.1:3000/username/testrepo.git,然后下面验证方式选择密码,输入gitea的密码就可以了。
最后你可以提交一下代码试试推送的结果如何,如果gitlab显示推送失败,可以点击错误信息查看详情。
如果gitlab的分支非常多,你可以创建一个dev分支,并设置为受保护的,然后在镜像推送时勾选仅推送受保护的分支就可以了。