docker工人和拉设置

我有一个在github中设置的回购,以拉入dockerbuild设。 我想添加我的密钥,所以我可以连接到混帐,但我不成功添encryption钥文件。 错误:

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 

谢谢!

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在path中创build任何所需的目录,所以不需要RUN mkdir指令。

为了完成这个峰值,我使用了一个解决方法来获取repo的公开zip。 在prod我会想要访问私人回购,但为了时间的缘故,我做到了这一点:

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

这得到我需要继续的文件,但这不是我真正需要的。 我仍然对原始post的解决scheme感兴趣。 谢谢!