4

我正在尝试使用弹性豆茎提出一个轨道应用程序的暂存实例。我按照文档进行了以下操作:

eb init --environment staging
eb start --environment staging

在此之后,我检查了 .elasticbeanstalk/optionsettings 仍然有“生产”作为环境。我手动将其更新为暂存,并尝试了 git aws.push 命令。

一段时间后,一切都已部署,但是,当我加载 URL 时,应用程序似乎仍在使用所有生产配置,而不是暂存。我错过了任何步骤吗?

4

3 回答 3

8

CLI 工具中的--environment开关eb不是指 Rails 环境,而是指您尝试启动的 Elastic Beanstalk 环境。Elastic Beanstalk 环境是一组用于已部署应用程序版本的预置资源。这与 Rails/Rack 环境不同,后者只是用户定义的上下文,供应用程序代码在单个机器上运行。

为了设置Rails 环境,您需要在文件中设置RACK_ENV(或RAILS_ENV)环境变量,然后调用以触发这些环境变量的更新。或者,您可以通过Elastic Beanstalk 控制台编辑您的Elastic Beanstalk 环境配置;在正确的环境中点击“环境详细信息”,在概览中点击“编辑配置”,然后转到“容器”以调整环境变量(在这种情况下,您将编辑该字段)。.elasticbeanstalk/optionsettingseb starteb updateRACK_ENV

于 2012-12-01T10:00:47.967 回答
1

虽然我使用的是eb_deployer而不是eb命令行,但在尝试部署时RAILS_ENV: development我发现db:migrateetc 在开发环境中运行,但它仍然以生产模式启动服务器。为了解决这个问题,必须在 option_settings 中同时传入 RACK_ENV 和 RAILS_ENV:

[{
   namespace: 'aws:elasticbeanstalk:application:environment',
   option_name: 'RACK_ENV',
   value: "development"
 },
 {
   namespace: 'aws:elasticbeanstalk:application:environment',
   option_name: 'RAILS_ENV',
   value: "development"
 }]
于 2013-08-08T19:21:28.957 回答
1

这是首次将应用程序部署到 elasticbeanstalk 的明确指南。

1) eb init --profile profile-name(配置文件名称将在 .aws > config 中)

2) 通过输入序列号,根据需要选择默认区域。

3) 通过输入序列号选择要使用的应用程序。

4) eb 列表

5) eb 使用(列表中的名称)

6) eb status (会给你状态) 就是这样你完成了初始化。现在,如果您想更改环境,只需使用以下命令。

  • eb setenv RACK_ENV=staging(需要一段时间)。

  • eb 部署(在 git 登台之后)。

你完了!!!!

于 2016-08-04T15:20:24.537 回答