2016-11-21 41 views
0

我試圖創建用於託管遠程git存儲庫的應用程序。我正在試圖做的是讓用戶通過克隆SSH存儲庫中,我使用supervisord爲我的應用程序和sshd的,但是當我試圖克隆庫,我得到:git clone(SSH)通過在docker中運行的supervisord獲得

$ git clone [email protected]:/repositories/some-repo 
Cloning into 'some-repo'... 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

和supervisord日誌我可以看到:

[date] INFO reaped unknown pid [PID] 

所以在我看來,這只是supervisord誰殺死所有未知的PID。 我確定我已經爲我的存儲庫設置了正確的訪問權限,並且我的密鑰已添加到authorized_keys文件中。我現在supervisord配置爲:

[supervisord] 
logfile = /tmp/supervisord.log 
directory = /tmp 
childlogdir = /tmp 

[program:app-sshd] 
command=/usr/sbin/sshd -D 

[program:app-uwsgi] 
command = /usr/local/bin/uwsgi --ini /my/path/uwsgi.ini 
stopsignal=INT 

[program:app-nginx] 
command = /usr/sbin/nginx 

有什麼辦法,允許在主管混帳連接或將我需要更換我的虛擬機搬運工集裝箱這個項目繼續?

+1

我不熟悉'supervisor',但它看起來像一個權限問題。要清除測試 - 可否禁用'supervisor'。現在嘗試克隆您的存儲庫。順便說一句,你有添加本地SSH公鑰到你的git服務器嗎? – Ivan

+0

正如我之前所說的,我的密鑰被添加到服務器上的aurhorized_keys文件中,但是當我在入口點檢查只有ssh守護進程時,它的行爲方式相同,我發現它有什麼問題。用戶git的shell設置爲/ bin/false,這就是爲什麼我登錄後才登出。 – Morishiri

回答

0

問題是我的用戶將shell設置爲/bin/false,然後他在登錄後立即註銷。將其更改爲/bin/bash解決了該問題。