2013-10-28 139 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