GitLab的Shell执行者,没有特权

时间:2016-05-02 16:25:03

标签: git permissions continuous-integration gitlab chmod

我有8.7.0版本的GitLab平台,我目前正在设置CI部分。 我创建了一个新的gitlab-runner,它使用shell作为执行器。 问题是,在调用转轮来完成自己的工作之前,系统无法获取git更改。 构建过程的控制台输出:

gitlab-ci-multi-runner 1.1.3 (a470667)
Using Shell executor...
Running on <my-page>...
Fetching changes...
warning: failed to remove <some-path>/localClassSetAnalysis.bin
warning: failed to remove <some-path>/localClassSetAnalysis.lock
...


gitlab-ci-multi-runner 1.1.3 (a470667)
Using Shell executor...
Running on <my-page>...
Cloning repository...
rm: cannot remove ‘path-to-some-directory>’: Permission denied
rm: cannot remove ‘path-to-some-directory>’: Permission denied
...

存储文件的文件夹是/ home / gitlab-runner / builds 所以我想,有两个用户:git和gitlab-runner,git用户无法删除或重写此目录中的文件。更改后,目录权限构建过程启动并成功完成,但之后文件再次具有旧权限(读取+写入用户(gitlab-runner)并读取其余的权限)。所以现在我必须(最简单的方法)在构建之前始终从/ home / gitlab-runner / builds中删除所有内容,但当然它不是解决方案...... 我该怎么办?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我想我已经解决了。您需要验证要在哪个组中创建新文件(我的文件是tape),然后将gitlab-runner添加到该组中。就我而言,命令看起来像这样……

sudo usermod -a -G tape gitlab-runner