【问题标题】:GitLab's Shell executor, no privilegesGitLab 的 Shell 执行器,没有权限
【发布时间】: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-runner sudo 权限(显然只有在非特权模式下运行的docker容器中运行)。
  • 我有同样的问题(即“shell”注册的 gitlab-runner 的权限被拒绝)。但是,我不能使用“docker”,因为我在 iOS 应用程序上。因此“sudo”不是一个选项。您是否找到了另一种解决此权限被拒绝问题的方法? My issue is explained here... 感谢您的帮助。

标签: git permissions continuous-integration gitlab chmod


【解决方案1】:

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

sudo usermod -a -G tape gitlab-runner

【讨论】:

    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 2013-01-27
    • 2016-02-21
    • 2021-11-16
    相关资源
    最近更新 更多