Ruby on rails Elastic beanstalk Rails-默认为生产环境,即使我设置了暂存环境
我正在尝试使用elastic beanstalk提供rails应用程序的一个登台实例。我遵循文档并做了以下工作:Ruby on rails Elastic beanstalk Rails-默认为生产环境,即使我设置了暂存环境,ruby-on-rails,deployment,amazon-web-services,amazon-elastic-beanstalk,Ruby On Rails,Deployment,Amazon Web Services,Amazon Elastic Beanstalk,我正在尝试使用elastic beanstalk提供rails应用程序的一个登台实例。我遵循文档并做了以下工作: eb init --environment staging eb start --environment staging 在此之后,我检查了.elasticbeanstalk/options设置是否仍然具有“生产”作为环境。我手动将其更新为staging,并尝试使用git aws.push命令 过了一段时间,一切都部署好了,但是,当我加载URL时,应用程序似乎仍然在使用所有的生产配
eb init --environment staging
eb start --environment staging
在此之后,我检查了.elasticbeanstalk/options设置是否仍然具有“生产”作为环境。我手动将其更新为staging,并尝试使用git aws.push命令
过了一段时间,一切都部署好了,但是,当我加载URL时,应用程序似乎仍然在使用所有的生产配置,而不是登台。我是否遗漏了任何步骤?ebCLI工具中的--environment
开关并不是指Rails环境,而是指您尝试启动的Elastic Beanstalk环境。弹性Beanstalk环境是为部署的应用程序版本提供的一组资源。这与Rails/Rack环境不同,Rails/Rack环境只是一个用户定义的上下文,应用程序代码可以在单个机器上运行
为了设置Rails环境,您需要在eb启动后在elasticbeanstalk/optionsettings
文件中设置RACK_ENV
(或Rails_ENV
)环境变量,然后调用eb update
来触发这些环境变量的更新。或者,您可以通过编辑Elastic Beanstalk环境配置;在正确的环境中单击“环境详细信息”,在概述中单击“编辑配置”,然后转到“容器”调整环境变量(在这种情况下,您将编辑RACK_ENV
字段)。当我使用而不是eb
命令行时,在尝试部署RAILS\u ENV:development
时,我发现db:migrate
etc在开发环境中运行,但它仍然以生产模式启动服务器。要解决此问题,必须在选项设置中同时传入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"
}]
以下是首次将应用程序部署到elasticbeanstalk的明确指南
1) eb init——概要文件名(概要文件名将出现在.aws>config中)
2) 通过输入序列号,选择您想要的默认区域
3) 通过输入序列号选择要使用的应用程序
4) 电子商务清单
5) eb用途(列表中的名称)
6) eb状态(将为您提供该状态)
就这样,初始化完成了。
现在,如果您想更改环境,只需使用以下命令
- eb setenv RACK_ENV=暂存(需要一段时间)
- eb部署(在git转移之后)
你完了 设置机架环境和导轨环境有效。我用git(a和branch)检查了新的分支,每个分支都遵循上面的步骤,但需要使用“eb create”,而不是init。