自從 Microsoft 在 2018 年 6 月 4 日用 75 億美元收購 GitHub 平台後,許多開發者紛紛逃到 GitLab 平台。先不論述這樣的逃難心理是不是符合被害妄想,至少對於組織內部所開發的專案而言,在不想開源(OpenSource)的顧慮下,GitLab也是一個很好的替代方案。
現在也有很多新創團隊使用 GitLab 來實現 DevOps 的建置模式,在這裡就不多說。但本篇只著重在於如何使用 Docker 建置 GitLab。
作業系統:CentOS 7
docker run -d --name gitlab -p 8080:80 --restart always gitlab/gitlab-ce
-d : 讓容器(Container)在背景執行
--name : 指定容器(Container)的名稱
-p : 指定主端(Host)對應客端(Quest)的連接埠
-restart : 設定為 restart,則容器在異常停止後,會自動重新起動上面指令是最簡單的建置方式,後面會再補充較完整的指令,將本機指定的目錄連結至容器內,達到可以永續保存資料的作用
http://localhost:8080
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)內需永續保存的目錄,連結至主端的目錄
若是想把指令保存下來,除了用 Shell Script 記錄下來外,也可以利用 Docker Compose 的定義檔(yml),來建立與啟動服務。
vi 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'
docker-compose up -d
docker-compose logs -f gitlab
建置 GitLab 有一鍵安裝(Bitnami GitLab Stack)、虛擬機器(Virtual Machine)或是容器(Dokcer)等方式,每種方式各有優缺點,但現階段我最喜歡的還是 Docker 的建置方式;另外在 Docker for Windows 建置 GitLab 的過程中,似乎會有些問題,之後有時間再來嘗試。
發文的目的,除了記錄學習的過程外,也希望能獲得前輩們的指導、建議與分享。
若有任何錯誤,也請大家指正與補充。謝謝。
請問一下
不需要設定 hostname 嘛?
因為我遇到 push 上去的 project 無法查看程式碼的狀況
不知道你是否曾經遇過?