Beanstalk 的 Gemfile git 分支无法捆绑安装
Posted
技术标签:
【中文标题】Beanstalk 的 Gemfile git 分支无法捆绑安装【英文标题】:Gemfile git branch for Beanstalk unable to bundle install 【发布时间】:2014-02-20 11:55:30 【问题描述】:在我的 Gemfile 中有
gem 'slim', :git => 'git://github.com/brennancheung/slim.git', :branch => 'angularjs_support'
这是我使用我的视图正确运行 AngularJS 所需的一个纤薄 gem 的一个分支。我已将代码推送到我的 beanstalk 应用程序,但无法根据下面显示的日志进行捆绑安装...
sh: git: command not found
Git error: command `git clone 'git://github.com/brennancheung/slim.git'
"/usr/share/ruby/1.9/gems/1.9.1/cache/bundler/git/slim-700ed452e752ccb6baf9de9d0a46fbded8bb2da5"
--bare --no-hardlinks` in directory /var/app/ondeck has failed.
我是 Beanstalk 的新手,不知道如何解决这个问题。任何有关如何使捆绑包成功安装的帮助将不胜感激。谢谢。
【问题讨论】:
确保安装了 git git-scm.com 嗯,如果是这样的话,我不知道如何在 Beanstalk 机器上安装 git。 我没有意识到你在亚马逊实例上。继续 ssh 进入 eb 实例并运行命令which git
并在此处发布输出
EB 实例不太可能安装 git。我知道我的没有 :) 我看到了三种选择:使用配置文件安装 git
,在部署之前从 slim
repo 获取文件到您的项目中,或者使用 http 直接从 github 获取文件。
嗯。我将不得不研究如何使用配置文件来做到这一点。我的想法是 ssh 进入机器。
【参考方案1】:
由于git
未默认安装在 EC2 实例上,因此您必须找到解决方法:
一个。使用配置文件和命令在实例上安装 git。这是解决问题的最明显方法,虽然不是最有效的方法。
b.将 slim
存储库克隆到您的项目中,以便将其部署在一起。似乎 slim
最近没有积极开发,因此在您的项目中拥有副本可能不是一个坏主意。它可以保护您免受github.com
的关闭,但您将有额外的文件需要随身携带。
c。使用配置文件和命令直接通过 http 从 github.com 拉取数据。文件太多,还依赖第三方服务。
d。使用以上组合。克隆 slim
存储库并将文件复制到 S3。使用配置和命令将文件从 S3 复制到您的实例。这似乎是解决问题的最优雅、最有效的方法。
它可能看起来像:
$ cat .ebextensions/myapp.config
commands:
10-copy-slim-from-s3
command: "aws s3 cp s3://mybucket/slim slim --recursive"
【讨论】:
我选择了选项 A。以上是关于Beanstalk 的 Gemfile git 分支无法捆绑安装的主要内容,如果未能解决你的问题,请参考以下文章
Elastic Beanstalk - 使用 Github Gems 部署 Rails
Bundler:始终在 Gemfile 中使用最新版本的 git 分支