最近在公司內部,我負責搭建了GitLab服務,開啓了從SVN逐步轉到GIT的路程。目前自建的GitLab運行狀態良好,很是好用。可是默認的GitLab並無開啓Pages服務,這樣的話在編寫項目說明文檔時,就很不方便了。因而本身試着在本地搭建的GitLab中開啓Pages功能,下面把開啓過程和遇到的問題記錄下來,分享給你們。html
編輯 /etc/gitlab/gitlab.rb文件,修改以下兩行nginx
##! Define to enable GitLab Pages pages_external_url "http://R7102/" gitlab_pages['enable'] = true
注意的這裏的pages_external_url,配置的是Pages使用的域名。若是你沒有域名,就先隨便寫個主機名什麼的。以後咱們可能經過配置Nginx來解決。git
※注意,最好經過 gitlab-ctl restart 重啓GitLab,使得GitLab Pages功能生效。bash
爲了可以自動發佈Pages,咱們須要安裝GitLab Runner,而後經過GitLab CI作到Pages內容的自動更新。網絡
因爲網絡環境不穩定,因此建議不要使用yum方式安裝Runner,能夠點擊下面的連接下載GitLab Runner的安裝包。gitlab
https://packages.gitlab.com/runner/gitlab-runnerurl
安裝好以後,就能夠經過命令爲咱們的項目添加runner了,在命令行中輸入如下命令,按照提示一步一步完成便可。spa
gitlab-runner register
其中須要填寫URL和Token,能夠在GitLab項目的概覽->Runners找到,相似下圖:命令行
在工程根目錄下,建立.gitlab-ci.yml文件,文件內容能夠經過GitLab內置的模板生產,以下圖:rest
這裏選擇HTML爲例,就生產了以上代碼。其中cp -r docs/. .public這句根據須要修改,將docs改成你存放pages頁面的路徑便可。
這樣,當咱們每次執行push動做後,就會觸發pages的自動部署。將咱們的pages頁面發佈到GitLab Pages服務中。
若是你有在上面配置開啓Pages時配置了域名了,那麼直接訪問:http://你的Git帳號.域名/工程名,例如:
http://xiaowang.mypages.com/project01
可是若是你不想那麼麻煩還得配置域名的話,這裏也有解決方法,因爲GitLab Pages服務是部署到Nginx中,咱們能夠同配置Nginx來經過IP地址訪問。
首先要找啊找,找到Pages的發佈位置,和GitLab內置Nginx的位置,分別以下:
一、Pages部署目錄:/var/opt/gitlab/gitlab-rails/shared/pages
二、內置Nginx目錄:/var/opt/gitlab/nginx
而後編輯nginx目錄下的conf/gitlab-pages.conf文件,內容以下:
server { listen 6869; ## 端口根據須要填寫 server_name 10.21.100.200; ## IP根據實際狀況填寫 server_tokens off; ## Don't show the nginx version number, a security best practice ## Disable symlink traversal disable_symlinks on; access_log /var/log/gitlab/nginx/gitlab_pages_access.log gitlab_access; error_log /var/log/gitlab/nginx/gitlab_pages_error.log; # Pass everything to pages daemon location / { # 指向pages的發佈目錄 root /var/opt/gitlab/gitlab-rails/shared/pages; index index.html; } # Define custom error pages error_page 403 /403.html; error_page 404 /404.html; }
配置好後重啓Nginx:gitlab-ctl restart nginx
訪問頁面:http://IP:端口/gitlab帳號/工程名/public/,例如:http://10.21.100.200:6869/xiaowang/project01/public/#/