我正在尝试使用带有 shell 执行程序的 gitlab-runner 提取代码。
$ git pull origin master
error: cannot open .git/FETCH_HEAD: Permission denied
ERROR: Job failed: exit status 1
git status 似乎工作正常但是当我尝试 git fetch 时
$ git fetch
error: cannot open .git/FETCH_HEAD: Permission denied
ERROR: Job failed: exit status 1
最佳答案
这可能是因为您没有在您的 gitlab 项目中为您的 gitlab-runner 用户添加部署 key ,因此该 runner 用户无权访问您的 gitlab 存储库。
您应该按照这些步骤为 gitlab-runner
用户(shell 执行者用户)创建 key 对 https://docs.gitlab.com/ee/ci/ssh_keys/#ssh-keys-when-using-the-shell-executor
然后将创建的公钥复制到/home/gitlab-runner/.ssh/id_rsa.pub
并将其添加到您的 gitlab 项目的部署 key 中:
- 去你的gitlab项目
- 设置 => 存储库
- 部署 key
- 添加标题,通过公钥并点击“添加 key ”
再次触发您的 CI,shell 执行器运行程序应该能够拉取存储库。
关于gitlab-ci-runner - 错误 : cannot open . git/FETCH_HEAD:gitlab-runner 上的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60995976/