用于克隆私有git仓库的Dockerfile

Kos*_*kov 17 ssh docker

我正在尝试从github克隆私有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 git@github.com:usr/repo.git
Run Code Online (Sandbox Code Playgroud)

我在本地使用这个repo就好了,所以看起来我在Docker里面缺少一些东西.

我可能会遗漏的另一件事是,船坞~人和$HOME船坞人都指向/而不是/root,但我不确定这是否可以相关.

jpe*_*zzo 20

构建过程的输出是什么?

随机猜测:尝试chmod 600私钥.

如果仍然无效,请尝试RUN ssh -v git@github.com(添加密钥后); 输出应该解释发生了什么.

  • 一种可能是使用`ssh-keyscan github.com >>〜/ .ssh/known_hosts`,是的!或者使用`-o StrictHostKeyChecking = no`进行首次登录尝试(这将导致相同的事情,但将是幂等的). (3认同)

Dan*_*bin 14

运行ssh-keyscan 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 Code Online (Sandbox Code Playgroud)

还如上所述:

RUN ssh -v git@github.com
Run Code Online (Sandbox Code Playgroud)

^调试流程的好方法.这就是我意识到我需要keyscan >> known_hosts的方法