Sto cercando di installare gitlab (6.5.1) su un server pulito e nuovo. Tutto sembra funzionare, ma git non è in grado di eseguire alcun progetto. Seguendo i comandi dalla pagina del progetto appena creato e spingendo al telecomando tramite ssh si ottiene:
$ git push -u origin master
fatal: Could not read from remote repository.
Please make sure you have the correct access
rights and the repository exists.
Questo sembra essere un problema abbastanza comune. Sfortunatamente sembra avere una serie di potenziali cause e nessuna di queste sembra corrispondere. Dal numero 3424 di una vecchia versione e varie altre fonti online ho visto e verificato i seguenti suggerimenti:
Tasti SSH rimanenti
Questa è una configurazione pulita senza avanzi. La mia chiave è stata aggiunta correttamente al file delle chiavi autorizzate ed è l'unica elencata.
L'esecuzione di ssh con la registrazione di debug mostra errori relativi alle variabili di ambiente Ruby.
Il mio viene pulito. Il debug SSH mostra una connessione riuscita. Tutto ciò che riguarda l'handshaking di autenticazione è normale, quindi questa è la fine dell'output:
debug1: Sending command: git-receive-pack 'username/reponame.git' debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK
Problemi con l'ambiente gitlab-shell.
A differenza di molti altri con lo stesso messaggio di errore sopra, il mio script di controllo gitlab-shell restituisce un buono stato di salute:
% sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check Check GitLab API access: OK Check directories and files: /var/lib/gitlab/repositories: OK /var/lib/gitlab/.ssh/authorized_keys: OK Test redis-cli executable: redis-cli 2.8.5 Send ping to redis server: PONG
Riavvia {unicorno, sidekiq, redis}
I rapporti secondo cui il riavvio di uno o più servizi lo risolvono non sembrano applicarsi qui. Questo non è un problema intermittente risolto dal rilancio di un demone.
Il repository non viene creato fisicamente
Ma è. La prima volta ogni volta, il repository bare git
~gitlab/repositories/username/reponame.git
viene creato ogni volta e sembra avere i permessi corretti.Gitlab-shell non può parlare con il server API perché A) problemi DNS, B) errata associazione ip / porta / interfaccia C) non avendo / avendo una barra finale.
Lo script di controllo indica che l'accesso all'API è corretto.
Non sto eseguendo nginx, quindi il problema di associazione ip predefinito relativo a questo è n / a.
Ho provato entrambi
*:8080
e127.0.0.1:8080
per il valore di ascolto inunicorn.yml
.Oltre a ciò, ho provato varie iterazioni di localhost, 127.0.0.1 e il nome di dominio completo (che sta risolvendo bene il DNS) con e senza barre di scorrimento
shell.yml
inutili. Ho anche provato a collegarlo direttamente al server unicorno sulla porta 8080 anziché all'host Apache SSL / proxy sulla porta 80. Niente sembra fare alcuna differenza. Il mio certificato non è autofirmato e funziona bene per i browser, ma ho provatoself_signed_cert: true
comunque a impostare . Niente.I percorsi git segnalati sono errati, aggiungi il percorso completo dalla home page dell'utente gitlab.
Questo sembra un suggerimento legittimo se la gitlab-shell non sta già facendo affari con le scimmie per correggerlo già, ma ho provato a cambiare
git remote add origin gitlab@server:username/reponame.git
a `` git remote add origin gitlab @ server: repository / nomeutente / reponame.git` inutilmente. Stesso errore
Questa sembra essere la litania di soluzioni suggerite, ma nessuna di queste sembra giusta. Nota Sono in grado di eseguire il push su http. Il prompt di accesso accetta il mio nome utente e la mia password ldap e accetta un push. Questo è solo un problema nel tentativo di utilizzare SSH. Testare solo la parte di login ssh con ssh -T gitlab@server
funziona correttamente.
Cos'altro potrebbe causare questo errore?
Come si fa a eseguire il debug di un tale problema in gitlab? Non sembra esserci nulla di rilevante in ~gitlab/gitlab-shell/gitlab-shell.log
. Dove si trova un messaggio di errore più informativo?