Opsworks Rails 控制台环境
Posted
技术标签:
【中文标题】Opsworks Rails 控制台环境【英文标题】:Opsworks Rails Console Environment 【发布时间】:2013-06-29 00:50:31 【问题描述】:我正在尝试在 amazon opsworks 中运行 rails 控制台,我已经尝试过:
sudo rails console -e production
sudo rails console production
RAILS_ENV=production sudo rails console
RAILS_ENV=production RACK_ENV=production sudo rails console
使用这些命令中的每一个,控制台都会在开发环境中启动。我需要做什么才能在我选择的环境中启动此控制台?
【问题讨论】:
【参考方案1】:sudo su deploy # switch to the app user
cd /srv/www/myapp/current # your deploy dir might be different (check logs if unsure)
RAILS_ENV=production bundle exec rails console
【讨论】:
似乎不起作用。我收到有关缺少环境变量的错误。 @MattGibson 抱歉,我没有使用环境变量支持。这些食谱只是write them into the unicorn.conf file,所以我不确定是否有一种优雅的方式可以从那里重复使用它们。 @MattGibson 查看我的答案,它将-E
添加到 sudo 命令中。那应该加载环境变量。【参考方案2】:
假设您已通过 ssh 进入实例。
$ cd /srv/www/yourapplication/current
$ sudo bundle exec rails console
【讨论】:
【参考方案3】:解决方案 1(更快): 您可以使用此 gem https://github.com/bkeepers/dotenv 从 .env(.environment) 文件中添加环境变量。您必须记下此文件中需要加载的所有键和值。
解决方案 2(更好): 像这里描述的那样做:http://dev.mikamai.com/post/90567083464/use-the-env-luke-aka-simulate-the-env-in
【讨论】:
【参考方案4】:如果您希望在不以 root 身份运行并且不将 dotenv 添加到 Gemfile 的情况下加载环境变量:
$ cd /srv/www/<NAME_OF_YOUR_APP>/current
$ sudo -u deploy -E bundle exec rails console production
【讨论】:
以上是关于Opsworks Rails 控制台环境的主要内容,如果未能解决你的问题,请参考以下文章
如何在 OpsWorks 部署到 Rails 堆栈期间始终运行迁移
如何在 AWS OpsWorks 上调试 Ruby On Rails?
如何在 Amazon OpsWorks 上为 Rails 应用程序运行 Redis?