使用Docker安裝GitLab

hackpython.png

前言

本文是「從零構建 GitLab CI/CD 流水線」一文的先導文章。python

操做系統環境爲Centos7,使用Docker進行GitLab的安裝,若是Centos7中沒有安裝Docker,能夠參考「Centos7安裝docker-ce」一文,它同爲「從零構建 GitLab CI/CD 流水線」先導文。git

安裝GitLab

gitlab 鏡像分爲兩個版本:docker

gitlab-ce 社區版
gitlab-ee 企業收費版編程

這裏使用社區版則可,直接安裝官方鏡像,目前(2020/1/14)官方鏡像大小約1.8G,若是你沒有設置Docker鏡像源,Docker會默認從國外Docker官方Hub去拉去進行,速度難以讓人接受,參考「Centos7安裝docker-ce」一文進行設置。c#

拉取gitlab-ce源安全

docker pull gitlab/gitlab-ce:latest

運行Gitlab

下載完後,先不急着運行Gitlab,爲了不容器運行時數據丟失,須要使用Docker volume(容器卷)方式來將數據映射到本地,這裏建立/home/gitlab目錄來存放相應的數據,具體對應關係以下表。ssh

| 宿主機位置 | 容器位置 | 做用 |
| --- | --- | --- |
| /home/gitlab/config | /etc/gitlab | 用於存儲 GitLab 配置文件 |
| /home/gitlab/logs | /var/log/gitlab | 用於存儲日誌 |
| /home/gitlab/data | /var/opt/gitlab | 用於存儲應用數據 |tcp

一般gitlab會與git配置使用,而git會採用ssh協議來操做git倉庫,而咱們鏈接宿主機時也使用ssh,若是不修改默認sshd端口,git使用默認配置就會出現問題,這裏將主機的sshd端口從22端口改成15678端口。gitlab

Centos7防火牆機制改成了firewall,擁有更加嚴格的安全機制,你須要按照下面方式去修改。post

1.編輯 /etc/ssh/sshd_config,將 #Port 22 註釋去掉,將數字 22 更改成 15678。

2.重啓sshd服務

systemctl restart sshd

3.配置firewall,使15678端口能夠對外提供服務,不然沒法使用ssh進行遠程登陸了。

semanage port -a -t ssh_port_t -p tcp 15678
firewall-cmd --permanent --add-port=15678/tcp
firewall-cmd --reload

完整上面兩項配置,就能夠運行docker了。

docker run \
    --publish 443:443 --publish 80:80 --publish 22:22 \
    --name gitlab \
    --volume /home/gitlab/config:/etc/gitlab \
    --volume /home/gitlab/logs:/var/log/gitlab \
    --volume /home/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce

這裏將主機的 44三、80、22 端口直接轉發到容,同時利用--volume將gitlab的配置、日誌與數據都持久化到本地

除了修改宿主機sshd端口外,你還能夠選擇另一種方法,就是修改gitlab容器相應的端口,但生產環境一般會不啓用22端口,避免被人惡意暴力嘗試,各位能夠進一步優化。

使用Gitlab

Gitlab容器啓動後,直接訪問 http://ip 就能夠進入gitlab訪問頁面,第一步要作的就是給root用戶設置密碼,設置完後,經過root + 設置的密碼登陸。

爲了方便管理,經過要作的就是建立不一樣的組,而後經過不一樣的組來管理組下的成員,好比這裏建立一個組叫「懶編程」(公衆號名)。

接着建立成員,初次建立成員時,不容許設置成員密碼。

成員建立完後,由於郵件服務未開啓(能夠配置SMTP開啓郵件服務),因此再次進入成員編輯頁,手動給予其密碼。

用戶登陸時,會要求其本身再次設置密碼,從而修改本來的默認密碼

將用戶添加到對應的組

在「懶寫做」組的主頁建立項目

經過下面代碼操做項目,即建立一個README.md文件,修改後,將該文件添加到gitlab上。

git clone http://244788b062fc/lazy_dev/test_service.git
cd test_service
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

最終效果

參考

經過 docker 搭建自用的 gitlab 服務

相關文章
相關標籤/搜索