2013-10-28 69 views
17

我想從github克隆私人git倉庫。我做了Dockerfile這樣的:克隆私人git倉庫的Dockerfile

FROM ubuntu:12.04 

RUN apt-get update 
RUN apt-get install -y git 
RUN mkdir -p /root/.ssh/ 
ADD ./id_rsa /root/.ssh/id_rsa 
RUN git clone [email protected]:usr/repo.git 

我用這個回購與此鍵就好了本地,這樣看來我失去了裏面的東西泊塢窗。

還有一件事我可能會丟失的是,無論~$HOME內泊塢窗指向/,而不是/root,但我不知道是否可以進行相關。

回答

20

構建過程的輸出是什麼?

隨機猜測:嘗試chmod 600的私鑰。

如果仍不起作用,請嘗試RUN ssh -v [email protected](添加密鑰後);輸出應該解釋發生了什麼。

+0

謝謝。問題是它無法打開tty來問我「known_hosts」是/否。顯示調試信息的'-v'是一個很好的建議。 –

+0

你是怎麼解決它的?通過將主機添加到Dockerfile中的known_hosts? –

+3

一種可能性是使用'ssh-keyscan github.com >>〜/ .ssh/known_hosts',是的!或者用'-o StrictHostKeyChecking = no'進行第一次登錄嘗試(這會導致同樣的事情,但會是冪等的)。 – jpetazzo

14

運行ssh-鍵掃描github.com >>的〜/ .ssh/known_hosts中

偉大鍵掃描的作品,因爲它接受的主機。下面的完整答案的工作:

RUN mkdir -p /root/.ssh 
RUN cp /var/my-app/id_rsa /root/.ssh/id_rsa 
RUN chmod 600 /root/.ssh/id_rsa 
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts 

還提到:

RUN ssh -v [email protected] 

^偉大的方式來調試流程。這就是我意識到我需要的鍵盤掃描>> known_hosts中

+0

謝謝 - 這對我很有用! – bonesbrigade