一、前提条件
1.存在docker
2.服务器可以联网(外网)
3.服务器内存至少4G(内存不够会出现502错误)
内存不足502错误如下图所示:

二、安装
安装环境:Centos7
1.查找GitLab镜像
1 | docker search gitlab |
2.拉取gitlab docker镜像
1 | docker pull gitlab/gitlab-ce:latest |
3.运行GitLab并运行容器
1 | docker run \ |
成功会返回的容器ID哦!!
命令解释:
1 | -i 以交互模式运行容器,通常与 -t 同时使用命令解释: |
重点:接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问
4.进入容器内
1 | docker exec -it gitlab-test /bin/bash |
5.修改gitlab.rb
1 | # 打开文件 |
6.修改gitlab.yml
1 | # 打开文件 |

1 | # 配置解释: |

1 | # 保存并退出:wq |
7.让修改后的配置生效
1 | gitlab-ctl reconfigure |
8.重启gitlab
1 | gitlab-ctl restart |
9.退出容器
1 | exit |
10.在游览器输入如下地址,访问gitlab(eaxternal_url配置的就是这个)
1 | http:192.168.201.5:9980 |
如果访问不成功的话:
(1) 进入容器查看gitlab.rb和gitlab.yml文件是否配置成功
(2) 查看防火墙是否开放9980、9922端口
11.依然访问不成功!!
确认防火墙firewall 和 iptables 都没有阻止端口。gitlab也运行成功,但是无法访问!!
查看端口,确实有监听9980和9922端口
1 | netstat -lntp |
但是telnet还是被拒绝
1 | telnet 192.168.201.5 9980 |
查看了了日志,
1 | $ docker logs -f -t --tail=100 gitlab-test | grep "failed" |
于是网上搜了方法,docker 镜像启动成功但是无法访问
1 | 解决办法: |
但因为原本就是”net.ipv4.ip_forward = 1”,所以也不是这个原因。
还提升了虚拟机内存,但同样无法访问。
最后,发现了gitlab对8080端口是有需求的,所以kill -9相关进程后,发现可以访问了(还是要等待一段时间)。
12.第一次访问默认是root账户,会需要修改密码(密码至少8位数,出现如下界面就基本上部署成功了)

13.输入新密码后进行登录
1 | root/gitlab123456 |

14.登录后界面如下图,创建一个新项目

15.输入信息,创建项目

16.检查这里两处的ip的端口是否是你配置的

如果这里两处的端口和ip和配置的不一样,再次进入容器检查gitlab.yml文件
如下图显示:


若不一样,将其修改为你的配置,然后:wq,再进行下面的操作
1 | gitlab-ctl reconfigure |
17.安装到此结束
三、关闭用户注册
1.使用root用户登录gitlab
2.点击【Admin Area】

3.点击【Settings】

4.点击Sign-in restrictions这一栏的【Expand】

5.取消勾选

6.往下滑动,找到保存按钮,点击保存

7.进入登录界面,发现注册的窗口已经消失了

四、邮件配置
五、自动备份配置
原文链接
附录
虽然,这几篇文章没有真正帮助到点,但也给了启迪。让我关掉已占用的8080端口,在此附上链接。
centos7 gitlab14搭建完成后,无法访问的问题处理(“error“:“badgateway: failed to receive response: dial unix /var/opt) 这篇有帮助,但未实践成功。因为直接kill了8080端口占用进程。
比较实用的几篇