搭建GitLab服務(wù)器

GitLab安裝與維護(hù)

GitLab是GitHub的免費(fèi)私有庫替代方案,并且安裝與配置都很方便。

系統(tǒng)需求

GitLab要求最少4GB內(nèi)存,支持小團(tuán)隊使用沒問題,實測2GB內(nèi)存的VPS基本沒法用,開swapfile也不行,動不動就60秒超時。因此4GB內(nèi)存是必須的。

關(guān)于這一點,內(nèi)存大戶主要是Unicorn,基于ruby的http服務(wù)器。Unicorn會在啟動后預(yù)先占用大部分內(nèi)存,內(nèi)存會隨著使用逐漸增長,并且不會釋放。根據(jù)GitLab和Unicorn的官方文檔,這不是它們的鍋,那么這個鍋可能是ruby和rails了。解決方法是unicorn-work-kill,會根據(jù)請求次數(shù)和內(nèi)存占用自動重啟Unicorn。Omnibus版的GitLab是默認(rèn)開啟的。

版本選擇

GitLab分為社區(qū)版和企業(yè)版,在未付費(fèi)的情況下,兩者的功能是一樣的。并且社區(qū)版整合了CI/CD,因此可以滿足絕大部分的開發(fā)需求。

安裝包主要包括Omnibus整合包,Docker、AWS等的云鏡像,以及一些第三方維護(hù)的版本。其中Omnibus直接整合了所有服務(wù)端組件,適合自用和練手。

安裝

安裝以O(shè)mnibus整合包為例,操作系統(tǒng)為Ubuntu16.04。

安裝必要組件(可選)

Gitlab需要 curl,openSSH 和 ca-certificates 這幾個組件:

sudo apt-get install -y curl openssh-server ca-certificates

不過服務(wù)器系統(tǒng)一般自帶,所以是可選的。

安裝郵件服務(wù)(可選)

郵件服務(wù),用于GitLab發(fā)送找回密碼的郵件:

sudo apt-get install -y postfix

不過如果服務(wù)器沒有域名的話,大部分郵箱會拒收郵件,而管理員帳號可以直接重置其他賬號的密碼,所以是可選的。

添加源

官方提供的腳本:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

這個腳本會自動添加源到apt 的source list,以及安全key。另外,如果自己服務(wù)器在國內(nèi),腳本會自動添加清華的鏡像,速度還行。

安裝

先更新apt緩存:

sudo apt update

推薦使用apt 而不是apt-get,前者大多數(shù)情況下更簡單一點。

然后是安裝:

sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce

其中EXTERNAL_URL ,改成自己的域名。沒有域名的話,可以直接設(shè)置成IP的形式:http://1.2.3.4,這個推測跟nginx服務(wù)以及GitLab中的項目地址有關(guān),所以最好正確設(shè)置。當(dāng)然也可以之后在配置文件里更改。

配置

安裝完成后,可以在配置文件中修改配置/etc/gitlab/gitlab.rb。

比如之前的EXTERNAL_URL:

external_url 'http://gitlab.example.com'

官方還有一個關(guān)于unicorn的優(yōu)化建議:

# unicorn['worker_processes'] = 2  ##修改要去掉前面的#號

默認(rèn)值是2,如果服務(wù)器只用于GitLab的話,官方建議是CPU核心數(shù)加一,可以提高服務(wù)器的響應(yīng)速度。不過如果內(nèi)存只有4G,或者服務(wù)器同時承載其他服務(wù),就不要改了,以免內(nèi)存不足。另外,這個參數(shù)最小值是2,設(shè)為1,服務(wù)器可能會卡死。

配置完成后,刷新配置:

sudo gitlab-ctl reconfigure

每次修改完gitlab.rb,都要刷新配置。

如果沒有報錯的話,GitLab就配置完畢并且正常運(yùn)行了。接下來可以打開瀏覽器開始訪問了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容