GitLab CE 8.17版本提供了GitLab Pages功能。
GitLab Pages可以用来托管静态web站点。结合GitLab CI的力量和GitLab Runner的帮助,你可以为你的单独项目、用户或组部署静态页面。
管理员设置
前提条件
- 有一个单独的域名为GitLab Pages服务。假设它是 example.io。
- 配置一条通配符DNS记录。
- 还有一些可选的,比如:配置https、添加一个Shared Runner、对于自定义域名有一个第二个IP。
DNS设置
GitLab Pages期望运行在GitLab的虚拟机上,在DNS服务器或者DNS提供商那里需要配置一个通配符DNS记录指向GitLab运行的机器。例如一个条目类似如下:
*.example.io. 1800 IN A 1.1.1.1
其中example.io是为Gitlab Pages服务的域名,1.1.1.1是GitLab实例的IP。
泛域名配置
1.在 /etc/gitlab/gitlab.rb文件添加如下设置
pages_external_url 'http://example.io'
2.Reconfigure GitLab
sudo gitlab-ctl reconfigure
用户文档
一般有两种类型的Pages可以创建
- 对于用户(username.example.io)或组(groupname.example.io)
- 对于Project(username.example.io/projectname 或 groupname.example.io/projectname )
在GitLab中,usernames或groupnames是唯一的,我们经常把他们称为namespaces。在一个GitLab实例中只能有一个namespace。
下面是Gitlab Pages类型、Project Name和 website URL对照表:
GitLab Pages前提条件:
简而言之,这是上传web站点到GitLab Pages需要的:
- Gitlab Pages使用的域名(向管理员询问)。
- 创建一个Project。
- 仓库的根目录放一个.gitlab-ci.yml,其中有个叫做pages的job。
- 设置一个GitLab Runner构建web站点。
官方提供了一些案例,有一个普通的web站点,还有一些静态站点生成器,可以clone这些案例尝试GitLab Pages:
GitLab Pages部署成功后截图如下:
管理员文档:
https://docs.gitlab.com/ce/administration/pages/
用户文档:
https://docs.gitlab.com/ce/user/project/pages/index.html
gitlab pages: