【问题标题】:Rails App, Elastic Beanstalk and REST API failure: (Bundler::GemNotFound)Rails 应用程序、Elastic Beanstalk 和 REST API 失败:(Bundler::GemNotFound)
【发布时间】:2013-11-21 04:53:08
【问题描述】:

我的项目的主要目标是在 Rails 中构建一个 Rails 应用程序和 REST API,并托管在 Amazon Web 服务上,例如使用 AmazonRDS 支持的弹性 beanstalk。然后使用 API 调用允许 android 和 iOS 应用通过 API 使用数据。

我正在进行的步骤是将 rails 应用程序部署到弹性 beanstalk,但它失败了。我正在使用 rails 3.2.13 和 ruby​​ 1.9.3、SQLite3 数据库以及 64 位 linux Amazon ruby​​ 1.9.3 作为部署环境。我正在按照此处的说明将 Rails 应用程序部署到弹性 beantalk: http://ruby.awsblog.com/post/Tx2AK2MFX0QHRIO/Deploying-Ruby-Applications-to-AWS-Elastic-Beanstalk-with-Git

但我一直想出这个错误:https://www.dropbox.com/s/cwvypf3neh754xs/AWSRailsErrors.PNG (我为图片道歉,但没有其他方法可以有效地证明问题)

我已尝试在 SQLite3 以及所有 gem 上进行捆绑更新,但它继续列出更多。

我已经用了几天了,没有任何错误变化,有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 amazon-web-services amazon-ec2


    【解决方案1】:

    sqlite3 只能用于开发/测试环境。在您的 gemfile 中,sqlite3 gem 应该在一个单独的组中,如下所示:

    group :test, :development do
        gem 'sqlite3'
    end
    

    然后,您可以为要用于部署的任何数据库添加单独的组,例如 mysql:

    group :production do
       gem 'mysql2'
    end 
    

    还要确保为生产数据库配置您的 database.yml 文件。

    【讨论】:

    • 我只是想让应用程序运行,所以我需要创建一个 AmazonRDS 实例并将凭证放入 database.yml 中?
    • hmm.. 看起来 EC2 可以运行 sqlite3 但我不知道 beanstalk 是否支持部署到它。我建议尝试两件事:在部署之前在 EC2 上使用这些命令安装 gem: yum install sqlite3 yum install ruby​​-devel 您可能还想尝试通过将 RAILS_SKIP_MIGRATIONS 设置为 true 来跳过 beanstalk 中的迁移。
    猜你喜欢
    • 2014-10-27
    • 2018-07-19
    • 2021-05-05
    • 2016-05-16
    • 1970-01-01
    • 2012-12-26
    • 2020-03-07
    • 2019-09-09
    • 2018-12-30
    相关资源
    最近更新 更多