GitLab的安裝、配置、使用
前言
上周去參與“中國數(shù)字經(jīng)濟(jì)創(chuàng)新發(fā)展大會”了,然后又忙新項目的事情,博客又有一段時間沒有更新,今天周一事情比較少,立刻開始寫文,最近有挺多值得記錄的東西~
進(jìn)入正文,最近我們搭了個Gitlab,并且把正在開發(fā)的項目代碼都遷移到自建的Gitlab上,整個過程還是比較流暢的(就是有點費內(nèi)存
PS:立即下單給這臺服務(wù)器買了四條16G內(nèi)存組四通道~
在此之前,我們團(tuán)隊一直使用Gitee企業(yè)版作為代碼管理,不過隨著網(wǎng)絡(luò)安全和信息安全管控越來越嚴(yán)格,加之五月份新政策加緊了對國內(nèi)開源項目的管控,我們還是決定將代碼放到一個更加可控的平臺上比較好。
在對比了Gitea和Gitlab之后,決定使用Gitlab搭建我們團(tuán)隊自己的代碼管理系統(tǒng)。
開始
Gitlab有開源免費的社區(qū)版,功能夠用,如果后續(xù)需要用更多功能還可以換企業(yè)版
所以為了方便后續(xù)升級,我們選擇使用企業(yè)版鏡像,未激活的情況下與社區(qū)版無異,需要升級的話只要購買它的訂閱即可平滑升級到企業(yè)版。
關(guān)于部署方式,云原生時代當(dāng)然使用Docker~
老規(guī)矩,用我最喜歡的compose編排鏡像
找一個空間足夠大的盤,創(chuàng)建gitlab目錄,然后創(chuàng)建docker-compose.yml
文件
配置內(nèi)容如下
version: "3"
services:
?gitlab:
? ?image: gitlab/gitlab-ee:latest
? ?restart: always
? ?hostname: gitlab
? ?ports:
? ? ?- 1100:80
? ? ?- 1101:443
? ? ?- 1102:22
? ?volumes:
? ? ?- /etc/localtime:/etc/localtime
? ? ?- ./config:/etc/gitlab
? ? ?- ./logs:/var/log/gitlab
? ? ?- ./data:/var/opt/gitlab
具體端口映射規(guī)則可以自己定義,volume映射也可以改,但記得第一個/etc/localtime
是固定的,把本機的時間傳給gitlab鏡像。
保存完在目錄下執(zhí)行docker-compose up
就能跑起來了
首次登錄
Gitlab默認(rèn)管理員用戶是root
密碼在/etc/gitlab/initial_root_password
文件里
可以進(jìn)入容器內(nèi)部查看
優(yōu)化內(nèi)存使用
Gitlab吃內(nèi)存真是名不虛傳啊
我們使用的這個服務(wù)器是32G內(nèi)存,在默認(rèn)配置下一直吃滿內(nèi)存,甚至在使用過程中經(jīng)常出現(xiàn)各種5xx錯誤,然后一看剩余內(nèi)存就幾百M……
果然是內(nèi)存老虎啊~
然后就嘗試各種配置,經(jīng)過幾天的摸索,終于把內(nèi)存占用控制在16G左右
修改配置文件,在Gitlab容器中,這個文件的位置是/etc/gitlab/gitlab.rb
前面我們在docker compose中做了映射,也可以在本機目錄下修改./config/gitlab.rb
文件
puma['worker_timeout'] = 30
gitlab_rails['time_zone'] = 'Asia/Shanghai'
puma['worker_processes'] = 2
postgresql['shared_buffers'] = "256MB"
sidekiq['max_concurrency'] = 8
postgresql['max_worker_processes'] = 4
puma['per_worker_max_memory_mb'] = 600
prometheus_monitoring['enable'] = false
sidekiq['min_concurrency'] = 8
修改完要進(jìn)入容器里執(zhí)行以下命令之一(重新載入配置或重啟gitlab),才能使修改生效
gitlab-ctl reconfigure
gitlab-ctl restart
clone地址
剛運行起來,clone地址是這樣的,這不行啊,復(fù)制下來沒法直接clone到本地,需要配置一下

HTTP的域名配置比較簡單,進(jìn)入menu->admin->settings->general->Visibility and access controls->Custom Git clone URL for HTTP(S)
填入gitlab的網(wǎng)址和端口號并點擊保存即可生效
不過HTTP需要登錄太麻煩了,我們一般用SSH
SSH地址好像沒法在前臺配置,需要修改配置文件
依然是前面說的那個配置文件,修改這倆行,分別配置IP地址和端口
gitlab_rails['gitlab_ssh_host'] = 'ssh.域名或IP地址'
gitlab_rails['gitlab_shell_ssh_port'] = 1102
重新載入配置就行了~
external_url配置
這個地址的配置涉及到好幾個地方,比如發(fā)送的郵件里的跳轉(zhuǎn)鏈接,代碼片段編輯的跳轉(zhuǎn)鏈接等~
還是在配置文件里修改
找到這一行,# external_url 'GENERATED_EXTERNAL_URL'
去掉前面的#
注釋,把URL改成Gitlab的內(nèi)網(wǎng)地址http://ip:1100
(之前把1100映射到了80端口)
需要注意一點就是Gitlab會根據(jù)這里URL的端口來決定提供web服務(wù)的端口
所以設(shè)置了這個URL的話,要同步修改docker-compose.yml
里的端口映射配置
比如這里設(shè)置了1100,那么同步docker-compose.yml
修改為
ports:
?- 1100:1100
搞定~
來源鏈接:https://www.dianjilingqu.com/436102.html