我有一个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中的所有文件,但这当然不是解决方案... 我该怎么办?
gitlab-runner
授予 sudo 权限(仅当它在非特权模式下运行的 docker 容器中运行时)。 - Simon A. Eugster