最近在公司内部,我负责搭建了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/#/