主机密钥验证无法在docker容器中获取git

时间:2017-11-30 14:45:21

标签: ruby git docker ssh-keys

我在github中有一个私有ruby gem,我在另一个存储库中使用,所以当我构建docker容器并尝试执行bundle install时,我收到以下错误:

  

主机密钥验证失败。致命:无法从远程读取   库中。

我已检查过我的用户是否有权阅读此gem。 我使用的命令是:

docker build \
-t quay.io/org/${APP}:${VERSION} \
.

我的Dockerfile就是这个简单的文件:

FROM ruby:2.4.2-onbuild
ENTRYPOINT ["./entrypoint.sh"]

在entrypoint.sh文件的位置执行此操作:

bundle exec ruby runner.rb

我想不知怎的,我需要将用户和ssh-key传递到容器中,但我无法弄清楚如何。

2 个答案:

答案 0 :(得分:0)

无需将密钥共享或推送到容器中。也许this answer可以帮助您继续。

答案 1 :(得分:0)

因为这个问题好像没有人回答过,我在这里补充一下-

将此添加到 Dockerfile 的开头:

FROM ruby:2.5.8

RUN git config --global url."https://github.com/".insteadOf 'git@github.com:'

说明: Bundle 使用 git 来验证它正在安装的 gem 的来源,我们不想使用 ssh 作为通信方式来执行此操作。否则,您需要 docker 容器中的私钥才能通过 ssh 进行通信。如果您打算与任何人共享私钥,您希望避免将私钥复制到容器中。而且,这样做更简单。

现在您应该能够像这样在构建步骤中运行 bundle install:

FROM ruby:2.5.8

RUN git config --global url."https://github.com/".insteadOf 'git@github.com:'

WORKDIR /app

COPY Gemfile Gemfile.lock  /app/

RUN bundle install