docker git和pull setup

时间:2014-07-31 16:02:55

标签: github docker verification

我在github上设置了一个repo来进入一个docker build。我想添加我的密钥,所以我可以连接到git,但我没有成功添加密钥文件。错误:

id_rsa: no such file or directory

该文件存在于Dockerfile中指定的目录中。我尝试用ln命令将我的本地文件链接到docker环境,但是我得到了同样的错误。这是docker语句:

 RUN mkdir /root/.ssh && ln -s /Users/e002678/.ssh /root/.ssh
 RUN touch /root/.ssh/known_hosts
 ADD id_rsa /root/.ssh/id_rsa
 RUN adduser git
 RUN ssh-keyscan github.com >> /root/.ssh/known_hosts

在变体尝试中,我尝试添加具有相同结果的共享卷:

 VOLUME ["/Users/e002678/.ssh"]
 ADD /Users/e002678/.ssh/id_rsa /root/.ssh/id_rsa

谢谢!

2 个答案:

答案 0 :(得分:1)

Docker ADD仅适用于Dockerfile目录。

要使ADD /Users/e002678/.ssh/id_rsa /root/.ssh/id_rsa起作用,您需要一个源目录,如:

$ ls
./Dockerfile
./Users/e002678/.ssh/id_rsa

提示 ADD使用元数据复制文件""即使用完全相同的用户ID,相同的组ID和相同的权限复制文件。所以在添加它们之后明确chown / chmod键:

ADD ./Users/e002678/.ssh/id_rsa /root/.ssh/id_rsa
RUN chown root: /root/.ssh/id_rsa && chmod 600 /root/.ssh/id_rsa

专家提示 Docker ADD会在路径中创建所需的目录,因此不需要RUN mkdir条指令。

答案 1 :(得分:0)

为了让这个秒杀完成,我使用了一种解决方法来获取回购的公开拉链。在prod我想要访问私人回购,但为了时间的缘故,我做了这个:

RUN wget https://github.com/<user>/<repo>/archive/master.zip
RUN ls master.zip | xargs -n1 unzip

这会获取我需要继续的文件,但这不是我真正需要的。我仍然对原帖的解决方案感兴趣。谢谢!