【发布时间】:2018-11-14 23:49:43
【问题描述】:
我是 docker 新手,正在尝试构建一个涉及执行npm install 的映像。我们的一些依赖项来自我们拥有的私有仓库,我遇到了一个与 SSH 相关的问题:
我意识到我没有向我的文件提供任何形式的 SSH 详细信息,并且在网上看到了有关如何在 docker build 命令中使用 args 来执行此操作的各种帖子。
所以取自here,在npm install 命令运行之前,我已将以下内容添加到我的dockerfile 中:
ARG ssh_prv_key
ARG ssh_pub_key
RUN apt-get update && \
apt-get install -y \
git \
openssh-server \
libmysqlclient-dev
# Authorize SSH Host
RUN mkdir -p /root/.ssh && \
chmod 0700 /root/.ssh && \
ssh-keyscan github.com > /root/.ssh/known_hosts
# Add the keys and set permissions
RUN echo "$ssh_prv_key" > /root/.ssh/id_rsa && \
echo "$ssh_pub_key" > /root/.ssh/id_rsa.pub && \
chmod 600 /root/.ssh/id_rsa && \
chmod 600 /root/.ssh/id_rsa.pub
因此,使用提供的正确参数再次运行 docker build 命令,我确实在控制台中看到了进一步的活动,表明我的 SSH 密钥正在被使用:
但正如你所见,我收到了 no hostkey alg 消息和
我仍然收到相同的“主机密钥验证失败”错误。我想知道是否可以查看它在错误中引用的日志文件:
我是否需要运行映像才能连接到它并浏览“根”文件夹?
我希望我说得有道理,请温柔,我是码头菜鸟!
谢谢
【问题讨论】:
标签: docker npm ssh dockerfile