本地搭建的GitLab中开启Pages功能,不需要域名也可以

纵然是瞬间 提交于 2019-11-28 12:22:32

最近在公司内部,我负责搭建了GitLab服务,开启了从SVN逐步转到GIT的路程。目前自建的GitLab运行状态良好,非常好用。但是默认的GitLab并没有开启Pages服务,这样的话在编写项目说明文档时,就很不方便了。于是自己试着在本地搭建的GitLab中开启Pages功能,下面把开启过程和遇到的问题记录下来,分享给大家。

1、开启GitLab Pages功能

编辑 /etc/gitlab/gitlab.rb文件,修改如下两行

##! Define to enable GitLab Pages
pages_external_url "http://R7102/"
gitlab_pages['enable'] = true

注意的这里的pages_external_url,配置的是Pages使用的域名。如果你没有域名,就先随便写个主机名什么的。之后我们可能通过配置Nginx来解决。

※注意,最好通过 gitlab-ctl restart 重启GitLab,使得GitLab Pages功能生效。

2、安装配置GitLab Runner

为了能够自动发布Pages,我们需要安装GitLab Runner,然后通过GitLab CI做到Pages内容的自动更新。

由于网络环境不稳定,所以建议不要使用yum方式安装Runner,可以点击下面的链接下载GitLab Runner的安装包。

https://packages.gitlab.com/runner/gitlab-runner

安装好之后,就可以通过命令为我们的项目添加runner了,在命令行中输入以下命令,按照提示一步一步完成即可。

gitlab-runner register

其中需要填写URL和Token,可以在GitLab项目的概览->Runners找到,类似下图:

3、配置Pages服务的CI

在工程根目录下,创建.gitlab-ci.yml文件,文件内容可以通过GitLab内置的模板生产,如下图:

这里选择HTML为例,就生产了以上代码。其中cp -r docs/. .public这句根据需要修改,将docs改为你存放pages页面的路径即可。

这样,当我们每次执行push动作后,就会触发pages的自动部署。将我们的pages页面发布到GitLab Pages服务中。

4、如何访问Pages页面呢?

如果你有在上面配置开启Pages时配置了域名了,那么直接访问:http://你的Git账号.域名/工程名,例如:

http://xiaowang.mypages.com/project01

但是如果你不想那么麻烦还得配置域名的话,这里也有解决方法,由于GitLab Pages服务是部署到Nginx中,我们可以同配置Nginx来通过IP地址访问。

首先要找啊找,找到Pages的发布位置,和GitLab内置Nginx的位置,分别如下:

1、Pages部署目录:/var/opt/gitlab/gitlab-rails/shared/pages

2、内置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/#/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!