【问题标题】:Running local GitLab CI with shell executor and flag --user $USER for gitlab-runner使用 shell 执行器和标志 --user $USER 为 gitlab-runner 运行本地 GitLab CI
【发布时间】:2021-11-23 20:22:57
【问题描述】:

我尝试在本地 GitLab 安装上设置 CI 环境。 我正在测试需要在普通用户($USER 的值)环境中运行的基本 shell 命令。 默认情况下,gitlab-runner 服务配置为--user gitlab-runner。 所以首先我按照Change Gitlab CI Runner user 提供的答案分配另一个用户。 这似乎有效,因为ps aux | grep runner 的输出符合预期,并且我遇到了.bash_logout 中描述的https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4559 中的clear_console 错误。 注释掉.bash_logout的内容后,我现在得到以下错误。

Running with gitlab-runner 14.3.2 (e0218c92)
...
Getting source from Git repository
00:00
Fetching changes with git depth set to 50...
error: could not lock config file /home/gitlab-runner/builds/y762gpjf/0/root/test.tmp/git-template/config: Permission denied

这发生在.gitlab-ci.yml 的任何命令被解释之前,所以我被困在这里。 此外,似乎 gitlab-runner 绝对不是为使用普通用户帐户运行而设计的。这是一个合理的假设吗?

编辑:根据答案实施的解决方案

确实,新用户无权访问运行器的工作目录。 所以在安装跑步者之前我跑了

sudo usermod -aG gitlab-runner $USER
sudo chmod g+wx /home/gitlab-runner/

然后

sudo gitlab-runner install --user=$USER --working-directory=/home/gitlab-runner

【问题讨论】:

  • 如果您更改了 gitlab-runner 用户,作业的路径不应以 /home/gitlab-runner 开头,这是默认用户的主目录。我认为新用户无权在/home/gitlab-runner 中写信,因为它的 uid/gid 与默认的 gitlab-runner 用户不同。

标签: gitlab-ci gitlab-ci-runner


【解决方案1】:

正如 Davide 在 cmets 中提到的,当您为 gitlab-runner 更新用户时,您还需要更新其工作目录以确保它具有对该目录的权限。或者,您可以授予新用户对/home/gitlab-runner 的访问权限,这是您的选择。要使用不同的用户和工作目录安装 gitlab-runner,命令是:gitlab-runner install --user=my_user --working-directory=/home/my_user (reference)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 2017-05-31
    • 1970-01-01
    • 2017-04-01
    相关资源
    最近更新 更多