我从heroku那里了解到,可以通过在本地运行heroku config:add MY_ENV_VAR=123来添加环境变量。如何使用engineyard实现相同的功能?
发布于 2012-10-18 21:10:55
我们遇到了同样的问题,并向EngineYard寻求帮助。来自安永的Jim Neath回复如下:
不幸的是,passenger没有从系统中获得传递的环境变量。您需要做的是创建一个ruby包装器,它定义您的环境变量并使用以下代码启动passenger,如下所述:
http://blog.phusion.nl/2008/12/16/passing-environment-variables-to-ruby-from-phusion-passenger/
我已经为你创建了一个基本的自定义厨师食谱,它将做到这一点:
https://github.com/jimneath/ey-cloud-recipes/tree/master/cookbooks/passenger_env_vars
您将需要使用您的环境变量更新以下文件:
/ey-cloud-recipes/blob/master/cookbooks/passenger_env_vars/templates/default/env.custom.erb
发布于 2012-09-21 15:43:34
我认为你不能。
我们在Rails应用程序中使用的一个变通方法是ssh (ey ssh)到EngineYard并在vim /data/your_app_name/shared/config/exports.rb中创建一个文件。此文件可能如下所示:
ENV["AWS_ACCESS_KEY_ID"] = "your key"
ENV["AWS_SECRET_ACCESS_KEY"] = "your secret"
ENV["AWS_BUCKET"] = "your bucket"然后在config/boot.rb中需要该文件:
require File.expand_path('./exports', File.dirname(__FILE__))这既不漂亮,也不容易。但是,它允许您在应用程序中使用不应该签入到源代码控制中秘密!
发布于 2012-12-06 18:25:45
对于使用env.custom的独角兽来说,这非常简单。请看我的回答,https://stackoverflow.com/a/13741463/1520775
https://stackoverflow.com/questions/12342612
复制相似问题