【发布时间】:2016-08-27 11:50:18
【问题描述】:
我有 8.7.0 版本的 GitLab 平台,我目前正在设置 CI 部分。 我创建了新的 gitlab-runner,它使用 shell 作为执行器。 问题是在调用 runner 来完成自己的工作之前,系统无法获取 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 中删除所有内容,但这当然不是解决方案...... 我该怎么办?
【问题讨论】:
-
您是否尝试为文件夹设置 umask?这你应该能够控制新创建的文件有什么权限。
-
或者给
gitlab-runnersudo 权限(显然只有在非特权模式下运行的docker容器中运行)。 -
我有同样的问题(即“shell”注册的 gitlab-runner 的权限被拒绝)。但是,我不能使用“docker”,因为我在 iOS 应用程序上。因此“sudo”不是一个选项。您是否找到了另一种解决此权限被拒绝问题的方法? My issue is explained here... 感谢您的帮助。
标签: git permissions continuous-integration gitlab chmod