如何在CentOS7上搭建自己的GitLab仓库
序言
各位好啊,我是会编程的蜗牛,作为java开发者,在团队开发中,一般都是需要使用git及git仓库来管理我们的代码的,这非常方便。我以前在小公司的时候,基本都是一个人开发一个项目,所以也没有怎么接触过git,后来去了大一点的公司,才第一次接触。这其中使用的比较多的仓库就是gitlab,但之前都是别人帮我搭好的,最近为了研究下jenkins自动化部署,所以得先安装下git仓库,这里首选gitlab,当然在这之前,我们可能还需要安装一个centos系统,这个可以参考我之前的文章:如何用VMWARE创建一个Linux虚拟机
话不多说,直接开始安装吧。
安装sshd
首选,先安装下sshd依赖,执行如下命令:
yum install -y curl policycoreutils-python openssh-server
按照正常的设想,应该是等待安装完成,但却报错了,如图:

看样子,是centos7里面默认的yum源镜像有点问题,网上查了一下,找到了解决方法,大致的原因是yum配置文件里指向的域名识别不了;需要重新设置下DNS指向。具体可以参考下这篇文章。https://blog.csdn.net/linhua_111/article/details/103522748
解决之后,再次执行上面的命令,就可以成功安装了。
安装好之后,需要启用和启动sshd服务,执行命令:
systemctl enable sshdsystemctl start sshd
设置防火墙
打开 /etc/sysctl.conf 文件,在文件最后添加新的一行。

输入如下文本:
net.ipv4.ip_forward = 1
这样,就配置好了防火墙。这样设置的作用是,当linux主机有多个网卡时,一个网卡收到的信息就可以传递给其他网卡了,就是数据可以进行转发。

然后,启动防火墙:
systemctl enable firewalldsystemctl start firewalld
最后,将防火墙重启,使防火墙设置生效。
systemctl reload firewalld
安装postfix
由于gitlab是需要使用postfix来作为邮件发送服务的,所以,还得安装下这个服务。
直接输入命令即可安装,在确认安装环节,输入【y】即可:
yum install postfix

安装完成之后,打开/etc/postfix/main.cf 文件,找到inet_protocols = all,将 all 改为 ipv4。
然后,启动postfix,输入命令:
systemctl enable postfix systemctl start postfix
安装gitlab
终于到了安装gitlab的时刻了。
首先,由于网络原因,我们需要更改下镜像源地址。在/etc/yum.repos.d 目录下新建 gitlab-ce.repo 文件,并在里面输入如下内容:
[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1
然后保存文件,这样把该镜像源的地址设置成了清华大学的,下载的时候会比较快。

保存好之后,需要重新生成环境,执行如下命令:
yum makecache
但是,这里,我又遇到了一个问题,如图:

发生这个问题的原因比较明显,就是我的系统上,/var这个挂载点空间不足,本身是由于我这个挂载点空间就不大,然后安装gitlab又比较耗费空间,所以,就报错了。无奈,又网上搜了一圈。
最终找到了将根目录下的空间分配一部分给其他挂载点的方法,成功解决这个问题。大家如果也遇到这个问题,可以参考这篇文章,写得比较详细了。https://www.linuxidc.com/Linux/2019-04/158346.htm

然后,我们就可以正式安装gitlab了,执行如下命令:
yum install -y gitlab-ce

这个安装起来时间较长,需要耐心等待一下,大概10分钟左右。
当看到这个画面的时候,就说明gitlab已经基本安装好了。

运行gitlab
首先,我们需要配置一下GitLab的域名,当然这个不是必须的,但建议配置下,不然到时候访问gitlab的时候,名字不太好记。
打开/etc/gitlab/gitlab.rb文件,找到external_url 这个选项,改成改机器的ip或者域名,如图:


然后,就是初始化gitlab,这是必须的,时间也比较长,耐心等待下吧。
输入命令:
gitlab-ctl reconfigure
当出现如图的画面时,就已经配置完成了。

这里说明下常用的命令:
sudo gitlab-ctl reconfiguresudo gitlab-ctl stopsudo gitlab-ctl start
分别是初始化gitlab,关闭gitlab,启动gitlab。现在我们启动下gitlab。但这时,问题又出现了。出现了502界面,并不是我们想要的登录界面。

我网上又找了很多种解决办法,有说8080端口被占用的,但我这边是用80端口的,所以不是这个问题。也有说可能启动较慢,需要等待一段时间,可是我大概等了10几分钟了,也还是502,所以也不是这个问题。
最后,看到说可能是内存不够,这个倒是有可能的,我在设置虚拟机的时候,把内存好像只设置成了1GB,网上说最好大于2GB,所以又将虚拟机的内存改大了,改成了4GB。我这里用的是VMWare虚拟机,这个更改的操作,也可以参考我上面讲的我之前的那篇文章,这里就不展开讲了。
登录gitlab
千呼万唤始出来了。终于到了登录的时刻了,但是问题来了,账号是root,那么密码是多少呢?

有同学可能会说,直接注册一个账号不就得了,这样应该也可以,就是点击界面下面的注册选项。
不过我这里还是希望先用root账号登录,毕竟可能能看到的比较全面。密码的话,后面找了下,是在我们的某个文件里面了。而且是有时间限制的,到了时间,这个密码就被抹去了。我是在日志信息里找到的这个文件,如图

然后,我们打开这个文件,直接取出密码即可,也没有什么加密解密的操作。

最后,终于可以使用root和这个密码去登录了,看看登录后的效果。

总结
今天安装这个gitlab,虽然中间遇到了很多问题,但好在最后都一一解决了,有问题就得多查查别人怎么解决的,当然也需要我们自己的细致观察和严谨思考。后面有时间再写下如何使用gitlab创建一个仓库及一些常用配置吧。
推荐阅读 点击标题可跳转
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 我与微信审核的“相爱相杀”看个人小程序副业