使用 Docker 安裝 GitLab CE 並啟用 GitLab Pages
GitLab CE v8.16 版以後,支援 GitLab Pages 功能。就像 GitHub Pages 一樣,你可以為 GitLab 上的 project 建立靜態網站。
使用 Docker 安裝 GitLab
以下使用 sameersbn/docker-gitlab 提供的鏡像檔安裝 GitLab 環境。最簡單的入門方式是透過 docker-compose:
1 |
|
使用以下命令啟動 GitLab:
1 |
|
將瀏覽器指向 http://localhost:10080
並使用預設的使用者名稱和密碼登錄:
- username:
root
- password:
5iveL!fe
sameersbn/gitlab
鏡像檔提供了可用的 配置參數 依照你想要的方式配置 GitLab。
配置 GitLab Pages
事前準備
在設定 GitLab Pages 之前,需要:
- 有一個單獨的網域名稱,在該網域下將提供 GitLab Pages。我們假設是
example.io
。 - 配置萬用字元(wildcard)DNS 記錄
- (Optional)如果決定在 HTTPS 下提供 Pages,需要為該網域提供萬用字元(wildcard)憑證。
- (Optional but recommended)請用共享的 GitLab Runners。
DNS 配置
在 DNS 提供商配置一條 A 類型的萬用字元(wildcard)DNS 記錄,指向 GitLab 運行的主機。例如:
1 |
|
其中 example.io
為 Gitlab Pages 的網域;而 1.1.1.1
是 GitLab 服務的 IP 位址。
啟用 GitLab Pages
要啟用 GitLab Pages 功能,需要寫入以下配置參數:
1 |
|
GitLab Pages 預設跑在 docker 容器的 8081
port。以下透過 docker-compose 設定對應到宿主機器的 18080
port:
1 |
|
使用 Traefik 反向代理
Traefik 是一套 HTTP 反向代理和負載均衡器,與 Docker 有深度的整合,可以輕鬆部署微服務。其安裝配置方式可參照 Traefik 官方文件。
假設底下是一份用於啟動 Traefik 服務的 docker-compose.yml
檔案:
1 |
|
先建立一個 web
的 docker 虛擬網路:
1 |
|
啟動 Traefik 服務:
1 |
|
然後我們修改原來 GitLab 的 docker-compose.yml
檔案,在 gitlab 服務下加入:
1 |
|
- 將
traefik.gitlab.frontend.rule=Host:examole.com
中的examole.com
換成你指定的 GitLab 網域名稱。 - 將
traefik.pages.frontend.rule=HostRegexp:{subdomain:[a-z]+}.examole.io
中的examole.io
換成你提供的 GitLab Pages 網域名稱。
建立 GitLab Pages
GitLab 官方提供了許多建立 GitLab Pages 的 範例。以下以 GitBook 為例。
我們在自架 GitLab 上建立一個 docs
的 group,並在底下建立 gitbook
repo。然後將官方的 GitBook 範例 clone 下來,push 至我們的 GitLab repo。
官方預設已經寫好 .gitlab-ci.yml
腳本。如果 GitLab CI 運行沒問題,就會部署至 GitLab Pages。
需要安裝 GitLab Runner 以執行 GitLab CI pipelines。
打開瀏覽器,進入 http://docs.example.io/gitbook
查看內容是否正確。
References
本部落格所有文章除特別聲明外,均採用 CC BY-SA 4.0 協議 ,轉載請註明出處!