【问题标题】:Gitlab returns "No Repository" even though the repository exists in the git_data_dirs path(s)即使存储库存在于 git_data_dirs 路径中,Gitlab 也会返回“No Repository”
【发布时间】:2018-12-13 06:22:12
【问题描述】:

总结

备份迁移后,部分仓库在网页控制台返回“No Repository”错误,无法克隆。已验证存储库是否存在,如 git_data_dirs 文件夹中指定的那样。

作为测试,我可以直接从 repositories/ 文件夹中克隆“No repository”项目,因此 repo 本身似乎没有任何问题。

重现步骤

不确定如何复制它,但这是我经历的步骤:

  • 主服务器上的备份项目
  • 在新服务器上恢复 tarball
  • 转到新服务器的 Web 仪表板中的项目路径,并获得“No Repository”。

我为诊断问题所采取的步骤。假设项目名为 myapp/myapp.foo.git:

  • 转到http://newgitserver.local/myapp/myapp.foo.git
  • 获取“无存储库”
  • 查看/etc/gitlab/gitlab.rb中的git_data_dirs:

    git_data_dirs({ “默认”:{“路径”:“/var/opt/gitlab/git-data”}, “筒仓”:{“路径”:“/mnt/reposbackup/git-data”} })

  • 请注意,我的项目在以下两个文件夹中都可用:/var/opt/gitlab/git-data/repositories/myapp/myapp.foo.git 和 /mnt/reposbackup/git-data/repositories/myapp /myapp.foo.git

  • 尝试重新启动服务器 - 结果相同
  • 尝试 sudo gitlab-ctl reconfigure - 结果相同
  • 尝试重启 runsv 服务:sudo systemctl restart gitlab-runsvdir - 结果相同

我还查看了数据库,“projects.repository_storage”的值似乎是正确的。即使将其更改为“默认”与“筒仓”(这是我的备用目录)似乎也不起作用。

我试图了解 gitlab 如何确定存储库的位置,因为检查 repo-path 似乎是失败的原因。

解决方案

迁移完成后运行sudo gitlab-rake cache:clear

【问题讨论】:

  • 讨厌回答我自己的问题,但我在尝试了一切之后才找到这篇文章:gitlab.com/gitlab-org/gitlab-ce/issues/31941。看来修复是运行sudo gitlab-rake cache:clear。这可能应该记录在某个地方!
  • 谢谢你,救了我。
  • 不幸的是,由于某种原因这对我不起作用

标签: gitlab gitlab-omnibus


【解决方案1】:

您可能需要清除 Redis 缓存。尝试运行以下命令:

sudo gitlab-rake cache:clear

Rake 是一个一般性的维护命令,很多用户都不知道,因为如果您使用的是纯云产品,则永远不需要它。它实际上只适用于本地产品。

有时问题纯粹是网络连接问题。你也可以使用 rake 来检查:

sudo gitlab-rake gitlab:tcp_check[ibm.com,80]

【讨论】:

  • 请问,在您的回答中什么代表“ibm.com”?
  • 在这种情况下,我只是在做一个 ping,我需要一个可靠的 IP 地址来命中。我总是 ping ibm.com,因为我知道他们可能会启动并运行。您可以使用任何您知道会可靠响应 ping 的网站。
【解决方案2】:

如果你使用 docker-compose 或 docker run,请检查 gitlab 仓库目录是否有正确的权限。

在我的情况下,容器 /var/opt/gitlab/git-data/repositories/user/my_repos 没有正确的权限(由于某种原因我忽略了)。为了解决这个问题,我不得不更改 repos 目录的所有权。

即使您不使用 docker,存储库目录上的权限问题也可以解释“无存储库”错误。

希望对你有帮助

【讨论】:

    【解决方案3】:

    确保 repos 归 git 所有,然后清除缓存。

    chown -R git /var/opt/gitlab/git-data/repositories
    gitlab-rake cache:clear
    

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 2019-03-31
      • 2019-04-20
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多