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

git 和 Gemfile.lock 的问题

Bundler:始终在 Gemfile 中使用最新版本的 git 分支

Gemfile 中新块“git_source(:github)”的含义

ruby 在Gemfile.lock中指定git分支

Gemfile分平台加载gem