本地搭建的GitLab中開啓Pages功能,不須要域名也能夠

最近在公司內部,我負責搭建了GitLab服務,開啓了從SVN逐步轉到GIT的路程。目前自建的GitLab運行狀態良好,很是好用。可是默認的GitLab並無開啓Pages服務,這樣的話在編寫項目說明文檔時,就很不方便了。因而本身試着在本地搭建的GitLab中開啓Pages功能,下面把開啓過程和遇到的問題記錄下來,分享給你們。html

一、開啓GitLab Pages功能

編輯 /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

二、安裝配置GitLab Runner

爲了可以自動發佈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找到,相似下圖:命令行

三、配置Pages服務的CI

在工程根目錄下,建立.gitlab-ci.yml文件,文件內容能夠經過GitLab內置的模板生產,以下圖:rest

這裏選擇HTML爲例,就生產了以上代碼。其中cp -r docs/. .public這句根據須要修改,將docs改成你存放pages頁面的路徑便可。

這樣,當咱們每次執行push動做後,就會觸發pages的自動部署。將咱們的pages頁面發佈到GitLab Pages服務中。

四、如何訪問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/#/

相關文章
相關標籤/搜索