我根据Arch Wiki页面通过Arch软件包安装了带有Redis,gitlab-workhorse,postgresql,nginx和TLS以及ssh访问的Gitlab。该系统是Arch主机上的Arch nspawn容器。
在将Web界面上的root用户添加到ssh公钥后,通过git进行克隆是可行的,但是通过具有公钥身份验证的https进行克隆却无法完成,通过https进行克隆的公共密钥身份验证也无法进行,但是使用密码进行https克隆可以进行。
现在,升级后,甚至无法通过具有公共密钥身份验证的git进行克隆!
gitlab从11.1.3-1版本升级到11.1.4-1后,它说:
directory permissions differ on /var/lib/gitlab/ filesystem: 711 package: 750
我修好了。
我还执行了软件包升级su - gitlab -s /bin/sh -c "cd '/usr/share/webapps/gitlab'; EXECJS_RUNTIME=Disabled bundle-2.3 exec rake db:migrate RAILS_ENV=production"
之后显示的推荐命令,以及ArchWiki中建议的升级后命令,该命令错过了EXECJS_RUNTIME=Disabled
,它是:su - gitlab -s /bin/sh -c "cd '/usr/share/webapps/gitlab'; bundle-2.3 exec rake db:migrate RAILS_ENV=production"
两个命令均成功。
之后,重启gitlab服务失败并显示
gitlab-unicorn.service: Failed at step USER spawning /usr/bin/bundle-2.3: No such process
gitlab-unicorn.service: Main process exited, code=exited, status=217/USER
PostgreSQL也有类似的错误:
postgresql.service: Failed at step USER spawning /usr/bin/postgresql-check-db-dir: No such process
Aug 07 16:26:28 adornisventures systemd[1]: postgresql.service: Control process exited, code=exited status=217
在重新启动服务后,网站和/或存储库网站甚至无法正常工作(503和404错误),Web功能再次开始工作,并且postgresql和gitlab-unicorn正常启动。
当我尝试通过git clone gitlab@domain.tld:root/privateproject.git
克隆私有或内部项目时,错误是:
Cloning into 'privateproject'...
/usr/share/webapps/gitlab-shell/lib/gitlab_net.rb:168:in `parse_who': who='-c/usr/share/webapps/gitlab-shell/bin/gitlab-shell key-3' is invalid! (ArgumentError)
from /usr/share/webapps/gitlab-shell/lib/gitlab_shell.rb:25:in `initialize'
from /usr/share/webapps/gitlab-shell/bin/gitlab-shell:20:in `new'
from /usr/share/webapps/gitlab-shell/bin/gitlab-shell:20:in `<main>'
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我的密钥在/var/lib/gitlab/.ssh/authorized_keys
的末尾:
command="/usr/share/webapps/gitlab-shell/bin/gitlab-shell key-3",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 public_key_here
该文件中似乎有些部分用散列隔开,并且上面还有其他行中有key-3
,但是删除它们并重新启动gitlab服务并不会改变任何内容。
尝试克隆存储库后,/var/log/gitlab/
中的所有日志都没有任何新条目。
如何进一步调试此问题?