【发布时间】: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