推送到外部硬盘驱动器上的目录时,Banana Pi 上的 GitLab-omnibus 7.9 出错

GitLab-omnibus 7.9 on Banana Pi error when pushing to directory on external hard drive

我正在使用带有 Ubuntu 14.04.5 Trusty Tahr(32 位架构)的 Banana Pi 1。我喜欢使用 Banana Pi 作为我的私有 GitLab 服务器。我成功安装了 gitlab-omnibus 7.9。请参阅以下系统信息:

System information
System:
Current User:   git
Using RVM:      no
Ruby Version:   2.1.5p273
Gem Version:    2.2.1
Bundler Version:1.5.3
Rake Version:   10.4.2
Sidekiq Version:3.3.0

GitLab information
Version:        7.9.0
Revision:       16d6f0e
Directory:      /opt/gitlab/embedded/service/gitlab-rails
DB Adapter:     postgresql
URL:            http://192.168.0.115
HTTP Clone URL: http://192.168.0.115/some-project.git
SSH Clone URL:  git@192.168.0.115:some-project.git
Using LDAP:     no
Using Omniauth: no

GitLab Shell
Version:        2.6.0
Repositories:   /media/Seagate Expansion Dr/Projekte/GitLab/git-data/repositories
Hooks:          /opt/gitlab/embedded/service/gitlab-shell/hooks/
Git:            /opt/gitlab/embedded/bin/git

通过 ssh 提交和推送工作正常,但目前 git 数据存储在 Banana Pi 的 SD 卡上(其中也安装了 ubuntu)。我连接了一个外部硬盘驱动器,当我通过 ssh 登录时也可以访问该驱动器。现在我希望 gitlab 将 git 数据存储在这个外部硬盘驱动器(名称:Seagate Expansion Dr)上。我按照指南中的 gitlab README.md。以下也是:

  1. 我把香蕉派上的仓库同步到了默认位置 /var/opt/gitlab/git-data/ 到新位置 /media/Seagate\ Expansion\ Dr/Projekte/GitLab/git-data(有关更详细的说明,请参阅 gitlab README.md)

  2. 我在 /etc/gitlab/gitlab.rb 中添加了以下行:

    git_data_dir "/media/Seagate\ Expansion\ Dr/Projekte/GitLab/git-data"
    
  3. 重新配置并重新启动 git实验室

    gitlab-ctl reconfigure
    gitlab-ctl restart
    

但是现在,当我尝试通过以下方式将我的 Windows 台式电脑上的存储库中的内容推送到 Banana Pi 时:

git push -u origin master

我收到以下错误:

fatal: protocol error: bad line length character: No s

我做了一些研究,认为错误与权限有关,所以我给所有者、组和其他人写、读和执行的权限进行测试,但错误仍然存​​在。

如果有人能帮助我,我会很高兴。如果需要任何进一步的信息,请立即联系我。

此致, 布雷乔 :)

终于成功了:) :) :)

  1. 我推送时遇到的错误意思是No such project(来源:Git push results in fatal: protocol error: bad line length character: This)。所以 GitLab 不知道或找不到该项目。

  2. 我的日志文件实际上并不是空的我没有正确查看(见上面的评论)。 @secustor 感谢您对日志的提示。 /var/log/gitlab/gitlab-shell/gitlab-shell.log 中的错误说明如下:

    W, [2017-07-30T19:20:41.433749 #21264]  WARN -- : gitlab-shell: Access denied for git command <git-receive-pack 'Richard/Survival_Indie_Development.git'> by user with key key-6.
    

在我的研究过程中,我发现这个论坛条目描述了我遇到的相同问题:https://github.com/gitlabhq/gitlabhq/issues/4730。我很早就发现了这个 link,但在那个时候我遇到了其他问题。

为了解决这个问题,我不得不编辑 gitlab-shell 配置文件:/var/opt/gitlab/gitlab-shell/config.yml。我将 Banana PI IP 地址和端口填写到以下行:gitlab_url: "192.168.0.115:80"host: 192.168.0.115。在此之后我执行了:

sudo gitlab-ctl reconfigure

sudo gitlab-ctl restart

瞧,它起作用了:)。为了测试,我删除了默认 gitlab 目录中以前的回购协议,它仍然有效。现在我的 git 数据存储在外部硬盘上 :)。