GitLab 是一个基于Git实现的在线代码仓库托管系统,分为社区版(CE)和企业版(EE),它可以通过 Web 界面进行访问公开的或者私人项目.拥有与 Github 类似的功能,一般用于在企业、学校等内部网络搭建git私服,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库.团队成员可以利用内置的简单聊天程序 (Wall) 进行交流.它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找.
2. Git、Github、GitLab的区别-
Git是版本控制系统,Github是在线的基于Git的代码托管服务.
-
GitHub是2008年由Ruby on Rails编写而成.GitHub同时提供付费账户和免费账户,这两种账户都可以创建公开的代码仓库,只有付费账户可以创建私有的代码仓库.
-
GitLab解决了这个问题可以在上面创建免费的私人repo.
GitLab是集中服务器上管理git存储库的一个好方法.GitLab让你可以完全控制你的存储库或项目,并允许你自己决定项目是公共还是私有.
3.1 优点
-
GitLab提供了GitLab Community Edition版本,供用户在他们的代码所在的服务器上进行定位;
-
GitLab免费提供无限数量的私人和公共存储库;
-
代码片段可以共享项目中的少量代码,而不是共享整个项目.
3.2 缺点
-
在推拉(push/pull)仓库时,它并不像GitHub那么快;
-
从一个页面切换到另一个页面时,GitLab界面需要时间.
#更新软件源列表
sudo apt-get update
#安装openssh
sudo apt-get install -y curl openssh-server ca-certificates
#安装postfix 邮件服务支持
sudo apt-get install -y postfix
注意:
- 使用左右键和回车键选择确定、取消,在弹出列表选项的时候,选择 Internet Site!!!
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
3. 配置国内的镜像路径
由于国外的下载速度过慢,所以配置清华大学镜像的路径.
vi /etc/apt/sources.list.d/gitlab-ce.list
3.1 写入

根据你的版本,选择对应的内容写入/etc/apt/sources.list.d/gitlab-ce.list
.
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
4. 安装 gitlab-ce
sudo apt-get update
sudo apt-get install gitlab-ce
5. 执行配置
sudo gitlab-ctl reconfigure
6. 编辑gitlab.rb
sudo gedit /etc/gitlab/gitlab.rb
修改gitlab的端口和地址:
external_url 'http://gitlab.example.com'
比如说更改为:
external_url 'http://192.168.87.100:8001'
其中,192.168.87.100是安装了gitlab的这台电脑的IP,端口只要不冲突就可以.
7. 重新加载配置文件sudo gitlab-ctl reconfigure
8. 浏览器访问
在浏览器中访问gitlab,发现已修改成功,需要使用192.168.87.100:8001来访问.
第一次进入,需要输入管理员账号(root)的密码,密码长度不低于8位.输入好之后,就可以以管理员身份进行登录,账号是root,密码就是你刚才输入的密码.
登陆成功后的首页面.
至此,Gitlab已安装成功!
三. GitLab部分命令1. 停止
sudo gitlab-ctl stop
2. 开启
sudo gitlab-ctl start
3. 重启
sudo gitlab-ctl restart
4. 查看状态
sudo gitlab-ctl status
5. 确认配置(配置修改后,必须执行)
sudo gitlab-ctl reconfigure
6. 查看日志
sudo gitlab-ctl tail
7. 查看 GitLab 版本号
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
四. 卸载gitlab
执行如下四步:
sudo gitlab-ctl uninstall
sudo dpkg -r gitlab-ce
sudo rpm -e gitlab-ce
reboot(重启)
五. 基于 Docker方式 安装 GitLab
我们使用 Docker 来安装和运行 GitLab 中文版,由于新版本问题较多,这里我们使用目前相对稳定的 10.5 版本,docker-compose.yml 配置如下:
version: '3'
services:
web:
image: 'twang2218/gitlab-ce-zh:10.5'
restart: always
hostname: '192.168.75.145'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.75.145:8080'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
unicorn['port'] = 8888
nginx['listen_port'] = 8080
ports:
- '8080:8080'
- '8443:443'
- '2222:22'
volumes:
- /usr/local/docker/gitlab/config:/etc/gitlab
- /usr/local/docker/gitlab/data:/var/opt/gitlab
- /usr/local/docker/gitlab/logs:/var/log/gitlab
安装完成后的工作
访问地址:http://ip:8080,端口 8080 是因为我们在配置中设置的外部访问地址为 8080,默认是 80. 初始化安装完成后效果如下:
设置管理员初始密码,这里的密码最好是 字母 + 数字 组合,并且 大于等于 8 位.配置完成后登录,管理员账号是 root.
注意: 如果服务器配置较低,启动运行可能需要较长时间,请耐心等待.
六. GitLab安装过程中的问题Whoops, GitLab is taking too much time to respond!

注意:
该问题可能是因为8080端口被占用,也可能是因为系统内存不够,本人是因为系统内存不够.
GitLab启动运行之后相当的消耗内存,尤其是做提交更新等处理的时候,出现这个错误的时候可以查看下内存情况.
$ free -m

看下used 和 free的使用情况,如果free一直在减少,说明gitlab正在启动,消耗内存中,还没有启动完成!这个时候访问是会提示502,Whoops,GitLab is taking too much time to respond.
这个时候不要去修改什么端口,启动等等,之前试过都无效,把系统内存调大就可以了!