如何配置本地gitlab-pages?

最近在研究Doxygen自动化生成技术,最后是希望能够发布到局域网上的gitpages上,这个配置到github或者gitee都好说,github直接一个gh-pages分支就行了,gitee也不用关心配置等等。最后这个pages部署搞了很久,目前只能说是能用,但可用性不是很好。这里核心的问题是如何修改配置项和nginx转发。

  • 目前使用下来必须要要配置一个域名,然后在本地修改hosts去访问。只通过ip是无法访问到pages的,网上有一堆通过ip加端口等等去构造访问的,试了好几个教程,最后看nginx访问日志是必须在静态文件最后必须存放到某个路径下才行,但实际上gitlab-pages是有个服务开启了8090端口去做操作的,具体pages最后一部文件擦欧总实现逻辑等等不太清楚。

gitlab和gitlab-runner配置

  • 目前个人电脑是M系列的MAC,感觉有些适配还做的不是很好。

gitlab

  • gitlab我是用docker安装的,注意选用ARM的docker镜像即可

  • 端口选用的是80和22,主要是不想去修改配置去适配git连接地址等等,默认mac是有默认安装的apahce占用80端口的,注意去关闭

sudo apachectl stop
  • 安装
    docker run --detach \
    --hostname 127.0.0.1 \
    --publish 80:80 \
    --publish 22:22 \
    --name gitlab \
     yrzr/gitlab-ce-arm64v8:latest
  • 初始话默认化密码在/etc/gitlab/initial_root_password,会保留24h

  • 启动一般要1分钟以上

  • 一些常见gitlab-ctl用法

# 查看所有服务运行状态
gitlab-ctl status
# 操作单个服务(查看status,重启restart,查看日志tail等等)
gitlab-ctl status gitlab-page

gitlab-runner配置

  • 是个直接下载安装和docker都是各种各样的问题无法正常使用,最后时用的homebrew配置的
  • 安装
brew install gitlab-runner
  • runner配置添加gitlab项目,executor选择shell

sudo gitlab-runner register --url http://127.0.0.1/ --registration-token $REGISTRATION_TOKEN
  • 运行
sudo gitlab-runner run --working-directory ~/app/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlabrunner --user root
  • 配置成功后如下图

gitlab-pages配置

这里核心有两点,配置中必须是域名以及nginx如何进行转发,

  • 修改配置,主要是如下几个,其中的url一定不能是ip地址,否则无法访问。gitlab-pages 服务默认时8090端口,如果gilab-pages运行失败可以用gitlab-ctl tail gitlab-pages看看运行日志是不是端口被占用了。
pages_external_url "http://example.com/"
gitlab_pages['enable'] = true
gitlab_pages['external_http'] = ['127.0.0.1:8091']
  • 修改后重启后可以在项目的设置中看到pages的选项了

  • 从模版中新建立一个项目,假定名称为test

  • 为项目配置runner
sudo gitlab-runner register --url http://127.0.0.1/ --registration-token $REGISTRATION_TOKEN
sudo gitlab-runner run --working-directory ~/app/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlabrunner --user root
  • 随便修改一个文件触发ci去生成pages,比如我这里去删了readme中的一行,运行成功后可在pages页面查看pages地址【此地址无法访问

  • 给hosts添加如下文件后就可以访问了
127.0.0.1 root.example.com

登陆地址说明

  • 一般URL路径如下组成
http://用户名.exapmle.com/项目名称
  • 项目维护者在代码评审未通过时可先fork项目后配置runner和hosts等等在自己的请求路径进行访问。

  • 比如项目创建这的请求地址为http://root.example.com/test,项目维护者则为http://test.example.com/test

参考


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *