# GitLab

# 安装

gitlab稍微有点吃内存,所以至少应在2核4g的机器中操作。 官网 (opens new window) 清华大学镜像源 (opens new window)

安装依赖包

yum install -y curl policycoreutils-python openssh-server  

wget或者上传rpm

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.10.0-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-15.10.0-ce.0.el7.x86_64.rpm

# 配置

修改http端口号

vim /etc/gitlab/gitlab.rb

external_url= 'http://xxx.xx.xx.xxx:port'

可选操作,如机器资源有限,本地还有nginx代理的80则改下内置的nginx端口

# 如有端口冲突,调整下
unicorn['port'] = 9092

prometheus太吃资源,我选择关掉

nginx['enable'] = true
nginx['listen_port'] = 9898
prometheus_monitoring['enable'] = false

重新生成rb外所有配置文件

gitlab-ctl reconfigure

此文件就是生成的

/var/opt/gitlab/gitlab-rails/etc/gitlab.yml

内置的nginx

/var/opt/gitlab/nginx/conf/gitlab-http.conf

# 相关操作

/etc/gitlab/gitlab.rb          #gitlab配置文件
/opt/gitlab                    #gitlab的程序安装目录
/var/opt/gitlab                #gitlab目录数据目录
/var/opt/gitlab/git-data       #存放仓库数据
gitlab-ctl reconfigure         #重新加载配置
gitlab-ctl status              #查看当前gitlab所有服务运行状态
gitlab-ctl stop                #停止gitlab服务
gitlab-ctl stop nginx          #单独停止某个服务
gitlab-ctl tail                #查看所有服务的日志

Gitlab的服务构成:
nginx:                 静态web服务器
gitlab-workhorse        轻量级反向代理服务器
logrotate              日志文件管理工具
postgresql             数据库
redis                  缓存数据库
sidekiq                用于在后台执行队列任务(异步执行)

# 常见问题

1.502错误

sudo chmod -R o+x /var/opt/gitlab/gitlab-rails

2.内存过大

由于gitlab占用内存较高,如果人员团队较少,不是提供给平台使用而是小组内部使用,可以适当缩小内存,主要通过以下几个方面
修改/etc/gitlab/gitlab.rb

# unicorn进程数改小,最小2个,内存占用调小

unicorn['worker_processes'] = 2 
unicorn['worker_memory_limit_min'] = "300 * 1 << 20"
unicorn['worker_memory_limit_max'] = "500 * 1 << 20"

# 关闭普罗米修斯及调小postgresql内存
sidekiq['concurrency'] = 4
prometheus_monitoring['enable'] = false
postgresql['shared_buffers'] = 256M