Rails - AWS(Elastic Beanstalk)部署,错误命令“git clone”

Posted

技术标签:

【中文标题】Rails - AWS(Elastic Beanstalk)部署,错误命令“git clone”【英文标题】:Rails - AWS (Elastic Beanstalk) deployment, Error Command 'git clone' 【发布时间】:2017-05-30 15:48:30 【问题描述】:

尝试在 AWS Elastic Beanstalk 中捆绑安装来自 github 的 gem(无论出于何种原因,作者都没有更新 ruby​​gems.org 上的 gem...),但我收到以下错误:

Command failed on instance. R
         (TRUNCATED)...nd `git clone "https://github.com/Diego81/omnicontacts.git"

这是我的 gemfile 中的代码

gem 'omnicontacts', git: "https://github.com/Diego81/omnicontacts.git"

我尝试过的其他事情......

gem 'omnicontacts', git: "git://github.com/Diego81/omnicontacts.git"

gem 'omnicontacts', github: "Diego81/omnicontacts"

我尝试过的一切仍然是同样的错误。我也用其他宝石尝试过这个,我收到了同样的错误。我还应该注意,这在我的本地机器上完美运行,这似乎是 Elastic Beanstalk 的问题。

【问题讨论】:

【参考方案1】:

好的,我通过在我的 EC2 实例上安装 git 解决了这个问题。只需 ssh 进入您的实例并运行以下命令:

sudo yum install git

这应该可以解决问题。

【讨论】:

【参考方案2】:

我更喜欢 this answer,它将 Git 添加到 .ebextensions。这样,如果我有例如一个生产服务器和一个登台服务器,我不必分别 SSH 到两者,我可以部署到每个服务器,Git 会自动安装。

ebextensions 方法似乎也更耐用。如果将来出于某种原因需要启动一个新的服务器实例,我宁愿将配置保存为代码,而不是记住配置应该是什么,然后手动实现配置。

通过创建一个名为 .ebextensions/ruby.config 的文件,我能够获得所需的内容,其内容如下:

packages:
  yum:
    git: []

【讨论】:

以上是关于Rails - AWS(Elastic Beanstalk)部署,错误命令“git clone”的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk Rails Bundler 失败

使用 AWS Elastic Beanstalk 部署 Rails ActionCable

创建 AWS Elastic Beanstalk Ruby/Rails 应用程序环境 [AWS 免费套餐] 时使用了哪些 AWS 资源/服务?

使用 MacOSX 将 Rails 应用程序推送到 AWS Elastic Beanstalk

在 AWS Elastic Beanstalk / Rails 上配置 HTTPS

AWS Elastic Beanstalk——rails 部署问题