GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目,适合大规模。文章介绍在Centos7.5环境下搭建GitLab。
Quick Guide
前置
- 1.配置需求(官方配置推荐2C8G,硬盘至少有 5-10 GB)
2.系统防火墙中打开HTTP和SSH访问
1
2
3
4
5sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld3.安装Postfix以发送通知电子邮件
1
2
3sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
安装
1.添加GitLab包存储库
1
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
2.设置GitLab实例的URL
1
sudo EXTERNAL_URL="http://<server_ip:port>" yum install -y gitlab-ee
3.启动并查看
1
2sudo gitlab-ctl reconfigure
sudo gitlab-ctl status4.用浏览器访问刚才配置的gitlab中的EXTERNAL_URL
5.设置新密码,用root用户和新密码登录
常用命令
1 | sudo gitlab-ctl start # 启动 |
服务构成
- nginx:静态Web服务器
- gitlab-shell:用于处理Git命令和修改authorized keys列表
- gitlab-workhorse:轻量级的反向代理服务器
- logrotate:日志文件管理工具
- postgresql:数据库
- redis:缓存数据库
- sidekiq:用于在后台执行队列任务(异步执行)
- unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
卸载GitLab
1.停止GitLab
1
sudo gitlab-ctl stop
2.停止GitLab
1
sudo rpm -e gitlab-ee
3.查看进程
1
ps aux | grep gitlab|grep service
4.停止进程
1
2kill -9 <查看到的进程PID>
ps aux | grep gitlab|grep service # 检查进程5.删除所有包含gitlab文件
1
find / -name gitlab | xargs rm -rf
Docker方式安装
1.下拉镜像
1
docker pull gitlab/gitlab-ce:latest
2.启动容器
1
2
3
4
5
6sudo docker run --detach \
--hostname <server_ip> \
--publish 444:443 --publish 8880:80 --publish 2222:22 \
--name gitlab \
--restart always \
gitlab/gitlab-ce:latest3.用浏览器访问http://<server_ip>:8880,使用root登录配置,可以参考官方文档
问题
1.错误信息为:GitLab is taking too much time to respond,返回502
处理步骤:
1.查看日志,发现unicorn端口被占用
1
sudo gitlab-ctl tail
2.修改unicorn端口
1
2gitlab-ctl stop # 停止gitlab
vi /etc/gitlab/gitlab.rb #3.应用配置,检查是否生效
1
2
3sudo gitlab-ctl reconfigure # 应用配置
sudo gitlab-ctl restart # 重启服务
lsof -i:8081 # 检查是否生效
More info: GitLab官网