gitlab-- pages 功能实战
pages 介绍
在我们日常使用 gitlab 的过程中,会产生一些产物,自己做的一些小网站,小页面之类,一般都是在本地调试访问,一旦我们想让其他朋友也可以随时访问,就需要单独在公有云上买一个服务器去部署,一是需要付费,二是我们调试页面访问量不多,单独搞个服务器部署有点浪费。
使用 GitLab Pages,可以直接从 GitLab 的存储库中发布静态网站。
- 用于任何个人或商业网站。
- 使用任何静态站点生成器 (SSG) 或纯 HTML。
- 为您的项目、组或用户帐户创建网站。
- 在您自己的 GitLab 实例或 GitLab.com 上免费托管您的网站。
- 连接您的自定义域和 TLS 证书。
- 将任何许可归于您的内容。
- Pages 支持的 SSG 示例
开启 gitlab 的 pages
默认 gitlab 的 pages 是关闭的,我们需要开启,我的 gitlab 是使用 docker 搭建的,进入到 docker 里面进行更改
# 进入到 gitlab 容器里
[root@dce88 ~]# docker exec -it gitlab-dev /bin/bash
编辑 gitlab.rb 文件
vi /etc/gitlab/gitlab.rb
加入下面的代码,保存
pages_external_url "http://pages.zouzou.com/"
gitlab_pages['enable'] = true
gitlab_pages['inplace_chroot'] = true
重新加载配置
# 在容器里加载配置
gitlab-ctl reconfigure
加载完配置之后在 gitlab 上查看
pages 功能实战
需求是这样的,我公司每天晚上都会对接口进行一次压测,将压测的结果保存在仓库里的 docs/ 目录下。文件如下
每个文件内容如下
这样看起来不直观,我们可以使用 gitlab 的 pages 功能,将所有的文件生成一个网站,在里面显示。
仓库目录如下
mkdocs.yml 文件内容如下,这个文件是必现有的,只有 site_name 是必现的,其他参数都是可选的
site_name: test report
site_url: http://pages.zouzou.com
site_dir: public
theme:
name: material
features:
- toc.integrate
#- navigation.expand
docs 目录下如下,index.md 文件必须有,我只写了一行注释,如下。还有两个压测报告文件
这样我们就配置好了仓库,接下来在 .gitlab-ci.yml 文件里写如下代码
default:
tags:
- docker
stages:
- build
- deploy
build:
stage: build
script:
- echo "我是 build"
pages: # job 的名称必须要是 pages
stage: deploy
retry:
max: 2
image: python:3.9.13-alpine3.16 # 使用一个 python 的镜像
tags:
- docker
before_script: # 安装两个库 mkdocs 和 mkdocs-material
- pip install mkdocs mkdocs-material --index-url http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
script: # 生成站点
- mkdocs build --strict --verbose
artifacts: # 制品
paths:
- public
mkdocs build --strict --verbose 命令执行完成之后,会生成一个 pubilc 的目录,gitlab 的 pages 也是根据 public 目录进行生成的
这样我们就写好了流水线,接下来运行流水线查看
点击 pages 的 job,查看日志
点击制品浏览
在查看设置下的 pages 页面,可以看到多了一个链接
在本地改一下 hosts 文件,将你 gitlab 服务器的地址添加到 hosts 文件里
10.6.215.70 root.pages.zouzou.com
点击上面的链接,看到下面的页面则成功。我们也可以写文档,然后部署在页面上