已损坏的dockerfile:github部署密钥不再正确复制

时间:2016-09-04 17:03:18

标签: git ssh docker

以下片段在一个月前工作正常(我最后一次运行容器。)今天没有。为什么?

RUN mkdir /root/.ssh && \
    mv /root/deployment_key /root/.ssh/id_rsa &&  cat /root/.ssh/id_rsa && \
    chmod 600 /root/.ssh && \
    chmod 600 /root/.ssh/id_rsa && \
    ssh-keyscan github.com,$(getent hosts github.com | awk '{ print $1 }') > ~/.ssh/known_hosts

当我cat ~/.ssh/known_hosts时,公钥只有它预期的一半左右。私钥在/root/.ssh/id_rsa中是正确的。

下一行(私人仓库的git clone失败并带有

Permission denied (publickey).
fatal: The remote end hung up unexpectedly
The command '/bin/sh -c git clone ssh://FOO@github.com/FOO/PRIVAT_REPO.git' returned a non-zero code: 128

我在OSX上运行docker Version 1.12.1-rc1-beta23(build:11375),但它在Windows 10上也失败了。

1 个答案:

答案 0 :(得分:0)

mv /root/deployment_key /root/.ssh/id_rsa 

这意味着您的Dockerfile包含ADDCOPY命令,该命令首先填充/root/deployment_key {/ 1}}命令之前填充

尝试通过以下方式从现有Dockerfile创建另一个图像:

  • 修改新图片的RUN mv,以便Dockerfile查看是否存在,以及预期的内容和内容长度,
  • 拆分RUN命令以隔离RUN echo /root/deployment_key/id_rsa.pub部分并检查其内容,然后继续执行其余的RUN命令。