前言
好久没有更新过博客了,最近的工作确实比较忙(可以说忙的要死),前几个月也在搞黑马的在线教育,基本上已经差不多完成了,在线教育项目的文章也完成了大半,今天刚好有时间做个gitlab
安装记录。
最近公司换了新的代码服务器,之前服务器是在亚马逊上,价格相对贵点,为了节约成本这次换到了国内的云服务器;公司把Git
私服也换了,之前用的gitblit
,此次更新到了gitlab-ce(社区版)
;特此记录下安装、部署的过程。
相对来说gitlab
的功能以及界面等,都要比gitblit
好一些;但是就安装来说,gitlab
的安装比gitblit
的安装要复杂很多。
GitLab介绍
GitLab
是由GitLab Inc.
开发,使用MIT许可证
的基于网络的Git仓
库管理工具,且具有wiki
和issue
跟踪功能。 GitLab
由乌克兰程序员Dmitriy Zaporozhets
和 Valery Sizov
开发,它由Ruby
写成。后来,一些部分用Go
语言重写。
主要功能
- 仓库管理
- 公仓和私仓 (权限分配)
- 团队和群组管理
- CI/CD工具
- GitLab工作流
- …
安装环境介绍
服务器
操作系统 | 内存 | 硬盘 | IP |
---|---|---|---|
CentOS 7 | 4G | 20G | 192.168.136.201 |
该服务器为我本地虚拟机,需要保证服务器能够正常连接外网。
安装
安装依赖(必要工作)
安装必要的依赖,无论Omnibus
和Docker
安装都需要。
# 依赖安装
sudo yum install -y curl policycoreutils-python openssh-server
# 启动ssh服务
sudo systemctl enable sshd
sudo systemctl start sshd
# 设置防火墙策略允许 http以及https
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
# 安装postfix并运行(gatlab默认邮件服务使用postfix)
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
Omnibus安装(yum)
获取安装包
# 获取社区版
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
安装gitlab
# 实际路径以你的服务器IP为准,也可以直接使用域名
# 安装过程可能会有点缓慢
sudo EXTERNAL_URL="http://192.168.136.201" yum install -y gitlab-ce
如果此步不能下载的可以使用Plan B
。
Plan B(推荐)
使用清华大学的镜像源
使用vi
或者vim
命令新建文件:/etc/yum.repos.d/gitlab_gitlab-ce.repo
若该文件已存在,将内容全部替换为下方内容:
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
执行安装命令
sudo EXTERNAL_URL="http://192.168.136.201" yum install -y gitlab-ce
此时下载速度应该就会快很多,但是安装仍需要一些时间,请耐心等待。
看到这个狐狸标志说明安装成功了。
启动GitLab
sudo gitlab-ctl reconfigure
访问测试
访问:http://192.168.136.201/
到此使用Omnibus
安装完成。
Docker安装
Docker
的安装、运行,就不在这里列出了,不会的兄弟可以百度一下哦,比较简单。
拉取镜像
# 拉取镜像(可能需要一些时间,耐心等待)
docker pull gitlab/gitlab-ce:latest
如果速度实在太慢,可以给Docker
挂阿里云的镜像加速器,具体操作,可以百度一下。
镜像还是蛮大的,建议挂镜像加速器。
运行容器
# 先创建目录用于挂载容器数据
mkdir -p /root/gitlat/
# 运行容器
sudo docker run --detach \
--hostname 192.168.136.201 \
--publish 443:443 --publish 80:80 --publish 22222:22 \
--name gitlab-ce \
--restart always \
--volume /root/gitlat/config:/etc/gitlab \
--volume /root/gitlat/logs:/var/log/gitlab \
--volume /root/gitlat/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
查看启动日志:docker logs gitlab-ce
排错
-
cannot create regular file ‘/etc/gitlab/gitlab.rb’: Permission denied
# 修改selinux配置 vim /etc/selinux/config # 将SELINUX=enforcing改为SELINUX=disabled,修改后需要重启 reboot # 重启成功后查看selinux状态 sestatus # 执行命令得到一下结果 # SELinux status: disabled
重启容器。
-
各种端口占用问题
建议使用全新的机器安装部署
gitlab
,否则就更换映射端口吧。
访问测试
访问:http://192.168.136.201/
测试创建了账号和项目,没有问题。