Ich lasse mein Gitlab über die offizielle Debian Repo unter 9.5 laufen und habe kürzlich festgestellt, dass ich in meinen Projekten nichts über das Webinterface herunterladen kann, denn die zip-Dateien und auch andere komprimierte Formate sind leer: die Dateien haben 0kb.
Da ich nginx verwende, fiel der Verdacht erst auf den Webserver, aber das konnte eigentlich nicht sein.
Die Lösung war dann recht einfach: in meiner gitlab Konfiguration (/etc/gitlab/gitlab.rb) war workhorse einkommentiert und der Unix Socket definiert:
gitlab_workhorse['enable'] = true # gitlab_workhorse['ha'] = false gitlab_workhorse['listen_network'] = "unix" # gitlab_workhorse['listen_umask'] = 000 gitlab_workhorse['listen_addr'] = "/var/opt/gitlab/gitlab-workhorse/socket"
Allerdings fehlte das Paket gitlab-workhorse.
apt-get install gitlab-workhorse
Da dann nginx noch ein Permission Problem anzeigte, als ich in meinem nginx upstream Setting auf den Unix-Socket umgestellt hatte:
upstream gitlab { server unix:/var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0; keepalive 32; }
2018/07/30 08:09:41 [crit] 29172#29172: *700 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 62.218.34.132, server: gitlab.neuim.net, request: "GET / HTTP/2.0", upstream: "http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/", host: git.xy.de
habe ich dem User noch die entsprechenden Rechte gegeben:
usermod -aG gitlab-www www-data service nginx restart
Fertig. Damit Downloads funktionieren, muss man Gitlab scheinbar über den Unix Socket arbeiten lassen.