gitlab-ci-runner - 错误 : cannot open . git/FETCH_HEAD:gitlab-runner 上的权限被拒绝

标签 gitlab-ci-runner

我正在尝试使用带有 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/

相关文章:

docker - git runner 无法访问

gitlab-ci-runner - 如何启用 docker 实验性功能以便 Gitlab 可以使用它进行构建

openssl - gitlab-runner x509 : certificate signed by unknown authority

powershell - 无法为 Gitlab CI/CD 管道设置执行策略

git - 无法从 Docker 中的 GitLab CI 克隆 repo

docker - 如何通过 Traefik 在 Docker 中代理 Gitlab

docker - Gitlab-ci 和 docker 组成 : tls handshake timeout

gitlab - 如何为gitlab组中的所有项目设置一个gitlab代理,将项目单独部署到kuberenetes集群

docker - Newman 报告生成在本地工作,但不是来自 CI

gitlab - gitlab 如何决定使用哪个 runner 来完成工作