最近在研究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