【发布时间】:2016-08-21 11:38:39
【问题描述】:
我正在尝试使用 docker 运行 rails 应用程序。通过 github 的 ssh url 安装的 gem 很少,如下所示:
宝石文件
gem 'swagger-docs', :git => 'git@github.com:xyz/swagger-docs.git', :branch => 'my_branch'
我在 docker 中添加了keys,它能够克隆所需的 repo 并从 git 安装 gem。
Dockerfile
RUN mkdir -p /root/.ssh
COPY ./id_rsa /root/.ssh/id_rsa
RUN chmod 700 /root/.ssh/id_rsa
RUN ssh-keygen -f /root/.ssh/id_rsa -y > /root/.ssh/id_rsa.pub
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
当我构建它(包括bundle install)时,一切顺利,镜像构建成功。但是当我运行docker-compose up 时,会出现以下错误
/usr/local/bundle/gems/bundler-1.9.2/lib/bundler/source/git/git_proxy.rb:155:in `allowed_in_path': The git source git@github.com:xyz/swagger-docs.git is not yet checked out. Please run `bundle install` before trying to start your application (Bundler::GitError)
【问题讨论】:
-
复制密钥后,您的 Dockerfile 是否包含
RUN bundle install? -
@NabeelAmjad 是的,当然。
-
本例中 id_rsa 的位置?
标签: ruby-on-rails ruby git docker docker-compose