本地搭建的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/#/

相关文章
相关标签/搜索