iT邦幫忙

0

【淺談 Docker 基礎】GitLab 篇:簡易架設

GitLab

自從 Microsoft 在 2018 年 6 月 4 日用 75 億美元收購 GitHub 平台後,許多開發者紛紛逃到 GitLab 平台。先不論述這樣的逃難心理是不是符合被害妄想,至少對於組織內部所開發的專案而言,在不想開源(OpenSource)的顧慮下,GitLab也是一個很好的替代方案。

現在也有很多新創團隊使用 GitLab 來實現 DevOps 的建置模式,在這裡就不多說。但本篇只著重在於如何使用 Docker 建置 GitLab

建置環境

作業系統:CentOS 7


Install GitLab

  1. 執行 docker run 指令,建立 gitlab/gitlab-ce 的 Container
docker run -d --name gitlab -p 8080:80 --restart always gitlab/gitlab-ce

-d : 讓容器(Container)在背景執行
--name : 指定容器(Container)的名稱
-p : 指定主端(Host)對應客端(Quest)的連接埠
-restart : 設定為 restart,則容器在異常停止後,會自動重新起動

上面指令是最簡單的建置方式,後面會再補充較完整的指令,將本機指定的目錄連結至容器內,達到可以永續保存資料的作用

  1. 接著就可以透過瀏覽器看看成果,第一次進入會要求設定管理者密碼
http://localhost:8080

https://ithelp.ithome.com.tw/upload/images/20190309/20111830U2cTiFYNNM.jpg

  1. 接著再登入一次就可以正式進入 GitLab
    https://ithelp.ithome.com.tw/upload/images/20190309/20111830mCsCgFmJ6z.jpg

補充較完整的指令

docker run -d \
	--name gitlab \
	-p 8080:80 -p 443:443 -p 22:22 
    --privileged 
    --restart always 
    -v ~/gitlab/config:/etc/gitlab 
    -v ~/gitlab/logs:/var/log/gitlab 
    -v ~/gitlab/data:/var/opt/gitlab  
    gitlab/gitlab-ce

-d : 讓容器(Container)在背景執行
--name : 指定容器(Container)的名稱
-p : 指定主端(Host)對應客端(Quest)的連接埠
--privileged : 容器(Container)内的 root 拥有真正的 root 权限
-restart : 設定為 restart,則容器在異常停止後,會自動重新起動
-v : 將容器(Container)內需永續保存的目錄,連結至主端的目錄


Install GitLab using Docker Compose

若是想把指令保存下來,除了用 Shell Script 記錄下來外,也可以利用 Docker Compose 的定義檔(yml),來建立與啟動服務。

  1. 建立 docker-compose.yml 檔案
vi docker-compose.yml
  1. 撰寫 docker-compose.yml 檔案內容
version: "3.6"
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    privileged: true
    ports:
      - '8080:80'
      - '443:443'
      - '22:22'
    volumes:
      - '~/gitlab/data:/var/opt/gitlab'
      - '~/gitlab/logs:/var/log/gitlab'
      - '~/gitlab/config:/etc/gitlab'
  1. 執行 docker-compose 建立並啟動 gitlab
docker-compose up -d

疑難排解

  • 追蹤日誌
    想要看執行中的容器日誌,可以透過 log 指令來 trace
docker-compose logs -f gitlab

https://ithelp.ithome.com.tw/upload/images/20190309/20111830I0PuA4H9h4.jpg

最後的最後

建置 GitLab 有一鍵安裝(Bitnami GitLab Stack)、虛擬機器(Virtual Machine)或是容器(Dokcer)等方式,每種方式各有優缺點,但現階段我最喜歡的還是 Docker 的建置方式;另外在 Docker for Windows 建置 GitLab 的過程中,似乎會有些問題,之後有時間再來嘗試。

發文的目的,除了記錄學習的過程外,也希望能獲得前輩們的指導、建議與分享。
若有任何錯誤,也請大家指正與補充。謝謝。


尚未有邦友留言

立即登入留言