我认为所有3个问题都与同一个问题有关,所以我要将所有问题都放在这里。
Gitlab本身正在工作,我甚至设法将它从8.2.2更新到8.2.3。 我可以创建项目,推送我的代码,拉动它,当我有正确的ssh密钥时重新放弃它等等。
但是:
{ “RepoPath”: “的/ var /选择/ gitlab / GIT-数据/库/ ME / myrepo.git”, “ArchivePrefix”:“......
人们无法克隆我的公共仓库(空仓库错误)。
CI无法构建我的测试:
警告:您已克隆空存储库。签出12345作为 开发...致命:引用不是树: 123456789mycommithash987654321
错误:构建失败:退出状态1
注意:我翻译了法语版的错误消息。
我认为问题出在我的Nginx配置中,但是有很多文档我不确定哪一个是好的:有主力的那些,当我必须改变gitlab.rb的gitlab_git_http_server等时
我的配置如下:
我的gitlab使用SLL托管在子域上,所以我添加了一个Nginx代理
/etc/gitlab/gitlab.rb :
external_url 'https://gitlab.mydomain.com'
nginx['listen_addresses'] = ['127.0.0.1', "[::1]"]
nginx['listen_port'] = 8080
nginx['listen_https'] = false
的/ etc / nginx的/ site_enabled / gitlab :
server {
listen *:80 default_server;
listen [::]:80 ipv6only=on default_server;
server_name gitlab.mydomain.com;
return 301 https://$server_name$request_uri;
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
}
server{
# listen 443 ssl;
listen 0.0.0.0:443 ssl default_server;
listen [::]:443 ipv6only=on ssl default_server;
server_name gitlab.mydomain.com;
server_tokens off;
location /{
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~ ^/(assets)/ {
root /opt/gitlab/embedded/service/gitlab-rails/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
client_max_body_size 250m;
# ...
# A lot a of SSL stuff (HSTS, OCSP, dhparam, etc)
# ...
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
error_page 502 /502.html;
更新:
刚刚将Gilab升级到8.3.0。
现在Git 502。
申请:https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/8.2-to-8.3.md。
我们会看到。
更新2:
毕竟没有完成说明,停止一切并重新启动所有内容两次(Gitlab和Nginx)最后设法让事情发挥作用。
CI / Zip / PublicCloning仍然存在同样的问题。
更新3:
更新至8.2.3
apt-get update
apt-get install gitlab-ce
502
重启nginx gitlab-ctl restart
gitlab-rake gitlab:app:check
Checking GitLab ...
Git configured with autocrlf=input? ... yes
Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory setup correctly? ... yes
Init script exists? ... skipped (omnibus-gitlab has no init script)
Init script up-to-date? ... skipped (omnibus-gitlab has no init script)
projects have namespace: ...
Redis version >= 2.8.0? ... yes
Ruby version >= 2.1.0 ? ... yes (2.1.7)
Your git bin path is "/opt/gitlab/embedded/bin/git"
Git version >= 1.7.10 ? ... yes (2.6.1)
Active users: 2
Checking GitLab ... Finished
如果有人可以引导我提供适当的文档或做出令人敬畏的更改。
++ 格雷格
答案 0 :(得分:2)
看起来ZIP文件的下载现在由gitlab-workhorse处理。
为此,nginx-configfile中还有一些额外的东西。您可能需要查看https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/gitlab哪里有一个部分
upstream gitlab-workhorse {
server unix:/home/git/gitlab/tmp/sockets/gitlab-workhorse.socket fail_timeout=0;
}
和
proxy_pass http://gitlab-workhorse;
在配置结束时。
我目前正在深入探讨同一问题,并会在我解决问题时向您报告。
答案 1 :(得分:1)
答案 2 :(得分:1)
更新文档缺少一个项目:它在nginx配置中将gitlab-git-http-server
重命名为gitlab-workhorse
,但它部分错过了/etc/default/gitlab
。同时将所有出现的gitlab-git-http-server
替换为gitlab-workhorse
,尤其是gitlab_workhorse_options
中的套接字。
像
这样的东西sed -i -e 's/gitlab-git-http-server/gitlab-workhorse/g' /etc/default/gitlab
答案 3 :(得分:1)
开始但不是全部:
我错误地让Gitlab的nginx听8080端口。当它已经是Gitlab的独角兽使用的端口时。
将其更改为8081会使CI更好地响应。仍然必须解决git用户的权利(或更好,使用docker),但这并不是这里重要的直接问题...
似乎在安装过程中创建的git和gitlab-runner用户确实拥有足够的权限。
首先:使用正确的ssh authorized_keys为每个人创建一个真正的家: / home / gitlab-runner , / home / git ,以及rbenv + ruby安装。
然后:vim /etc/passwd
并更改新主页的主目录,在那里他们拥有完整权限。
现在我的版本是绿色的!