我在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
谢谢!
答案 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
这会获取我需要继续的文件,但这不是我真正需要的。我仍然对原帖的解决方案感兴趣。谢谢!