ubuntu 下搭建gitLab

  1. 安装所需依赖
    sudo apt-get install curl openssh-server ca-certificates postfix

  2. 安装postfix的时候,需要进行一些选择,这里按默认选项(Internet Site),直接进行OK确认。然后填入自己的邮箱名,我这里填入localhost。

  3. 获取gitLab主程序
    (1). 通过官网获取
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install gitlab-ce
    (2). 由于官网速度慢,这里使用国内镜像
    a. vim打开文件/etc/apt/sources.list.d/gitlab-ce.list,加入资源信息(注意写入权限)
    deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
    b. 信任 GitLab 的 GPG 公钥:
    curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
    c. 更新资源
    sudo apt-get update

  4. 安装 gitlab-ce
    sudo apt-get install gitlab-ce

  5. 配置gitLab
    sudo vim /etc/gitlab/gitlab.rb
    修改external_url为自己的IP地址或域名,添加nginx配置

    external_url "https://gitlab.example.com"
    
  6. 启动gitLab服务
    sudo gitlab-ctl reconfigure

  7. 502错误
    a. 查看nginx错误日志,日志文件根据nginx配置确定
    tail -f /var/log/gitlab/nginx/gitlab_error.log
    b. 查看unicorn日志
    sudo gitlab-ctl tail unicorn
    比如我遇到的错误信息为:

         E, [2017-11-06T14:30:01.403991 #23461] ERROR -- : worker=1 PID:23747 timeout (70s > 60s), killing
         E, [2017-11-06T14:30:10.308742 #23461] ERROR -- : reaped #<Process::Status: pid 23747 SIGKILL (signal 9)> worker=1
         E, [2017-11-06T14:30:10.805808 #23461] ERROR -- : worker=0 PID:23568 timeout (68s > 60s), killing
    

    明显是超时导致,因此修改unicorn配置:
    sudo vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
    由于我的测试机只有2G内存,我又不想修改 timeout 60 的默认参数,因此我修改了进程数,将默认的2 改为 1 worker_processes 1
    重启gitlab
    sudo gitlab-ctl stop
    sudo gitlab-ctl start
    成功运行。这是临时测试方案,如果测试没问题就把unicorn配置写入/etc/gitlab/gitlab.rb
    sudo vim /etc/gitlab/gitlab.rb
    加入以下代码
    unicorn['worker_processes'] = 1
    重置gitlab配置
    sudo gitlab-ctl reconfigure

  8. 禁用gitlab自带的nginx
    a. sudo vim /etc/gitlab/gitlab.rb
    加入以下代码:
    nginx['enable'] = false
    重置gitlab配置
    sudo gitlab-ctl reconfigure
    b. 配置原有nginx,创建新文件gitlab.conf
    sudo vim /etc/nginx/sites-enabled/gitlab.conf
    引入gitlab的nginx配置
    include /var/opt/gitlab/nginx/conf/gitlab-http.conf;
    测试nginx配置(注意用户身份)
    /usr/sbin/nginx -t
    如果有错误,就根据错误提示修改 /var/opt/gitlab/nginx/conf/gitlab-http.conf 文件,没问题后重启nginx
    /usr/sbin/nginx -s reload

  9. 测试邮件发送
    进入控制台
    gitlab-rails console
    发送测试邮件
    Notify.test_email('xxxx@test.com','gitlabTest','This is a test email from gitlab').deliver_now

原文地址:https://www.cnblogs.com/junly/p/7787433.html