运行 local GitLab CI with shell executor and flag --user $USER for gitlab-runner
Running local GitLab CI with shell executor and flag --user $USER for gitlab-runner
我尝试在本地 GitLab 安装上设置 CI 环境。
我正在测试需要在普通用户($USER
的值)环境中 运行 的基本 shell 命令。
默认情况下,gitlab-运行ner 服务配置为 --user gitlab-runner
。
所以首先我按照 提供的答案分配另一个用户。
这似乎有效,因为 ps aux | grep runner
的输出符合预期,我从 https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4559 中描述的 .bash_logout
中遇到了 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-运行ner 绝对不是设计为 运行 与普通用户帐户。这是一个合理的假设吗?
编辑:根据答案实施的解决方案
确实,新用户无法访问 运行ner 的工作目录。
所以在安装 运行ner 之前我 运行
sudo usermod -aG gitlab-runner $USER
sudo chmod g+wx /home/gitlab-runner/
然后
sudo gitlab-runner install --user=$USER --working-directory=/home/gitlab-runner
正如 Davide 在评论中提到的,当您更新 gitlab-runner 的用户时,您还需要更新其工作目录以确保它对该目录具有权限。或者,您可以授予新用户访问 /home/gitlab-runner
的权限,这是您的选择。要使用不同的用户和工作目录安装 gitlab-runner,命令是:gitlab-runner install --user=my_user --working-directory=/home/my_user
(reference)
我尝试在本地 GitLab 安装上设置 CI 环境。
我正在测试需要在普通用户($USER
的值)环境中 运行 的基本 shell 命令。
默认情况下,gitlab-运行ner 服务配置为 --user gitlab-runner
。
所以首先我按照 ps aux | grep runner
的输出符合预期,我从 https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4559 中描述的 .bash_logout
中遇到了 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-运行ner 绝对不是设计为 运行 与普通用户帐户。这是一个合理的假设吗?
编辑:根据答案实施的解决方案
确实,新用户无法访问 运行ner 的工作目录。 所以在安装 运行ner 之前我 运行
sudo usermod -aG gitlab-runner $USER
sudo chmod g+wx /home/gitlab-runner/
然后
sudo gitlab-runner install --user=$USER --working-directory=/home/gitlab-runner
正如 Davide 在评论中提到的,当您更新 gitlab-runner 的用户时,您还需要更新其工作目录以确保它对该目录具有权限。或者,您可以授予新用户访问 /home/gitlab-runner
的权限,这是您的选择。要使用不同的用户和工作目录安装 gitlab-runner,命令是:gitlab-runner install --user=my_user --working-directory=/home/my_user
(reference)