Loading... ## 问题 使用`Gitlab-Runner`进行`Clone`存储库时提示: ``` fatal: unable to access 'http://gitlab-ci-token:xxxxxx@gitlab_domain/project/repo.git/': The requested URL returned error: 502 ``` 并且无法使用`git clone https://domain/project.git`,也返回相同错误。 ## TL;DR 将`Nginx`下`Gitlab`站点配置中`passenger_user`和`passenger_group`的用户和用户组设置为具有`/var/opt/gitlab/gitlab-workhorse/socket`权限的用户和用户组,或者将 `/var/opt/gitlab/gitlab-workhorse/socket`赋予正确的所有者和访问权限。 ## 原因 我是通过外置`Nginx`对`Gitlab`进行反向代理时才出现的问题。查看`Gitlab`访问日志: ``` unix://var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) ``` 查看`Nginx`下`Gitlab`站点的配置文件,发现: ``` upstream gitlab-workhorse { server unix://var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0; } ``` 问题就出现在这个`socket`的权限上,解决方案有两个,一个是更改`Nginx`下`Gitlab`站点配置中`passenger_user`和`passenger_group`的用户和用户组,最好换成你安装`Gitlab`时的同一个用户,也可以先设置为`root`测试问题是否解决: ``` server { ··· # Make sure Passenger runs as the correct user and group to # prevent permission issues passenger_user root; passenger_group root; ··· } ``` 另一种方式则可以更改`/var/opt/gitlab/gitlab-workhorse/socket`文件为正确的用户和用户组,且给正确的权限。 # Reference * [gitlab runner has no access to repos](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1313) 最后修改:2020 年 09 月 22 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏