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感兴趣。 谢谢!