6

私はherokuから、heroku config:add MY_ENV_VAR=123ローカルで実行することで環境変数を追加できることを知っています。エンジンヤードで同じことをどのように達成できますか?

4

5 に答える 5

9

同じ問題に遭遇し、EngineYard に支援を求めました。EY の Jim Neath 氏は、次のような回答を返しました。

残念ながら、passenger はシステムから渡された環境変数を取得しません。ここで説明するように、環境変数を定義する Ruby ラッパーを作成し、これを使用してパッセンジャーを起動する必要があります。

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-10-18T13:10:54.657 に答える
4

これは、env.custom を使用する Unicorn にとって非常に簡単です。ここで私の答えを見てください https://stackoverflow.com/a/13741463/1520775

于 2012-12-06T10:25:45.003 に答える
4

=/ できないと思います。

Rails アプリケーションで使用する回避策の 1 つは、EngineYard に ssh (ey ssh) し、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-09-21T07:43:34.207 に答える
1

これらの環境変数を必要とする rake タスク (つまり、cron ジョブ) を実行する場合は、変数を /data/my_app/shared/config/env.custom に保存します。

source /data/my_app/shared/config/env.custom && cd /data/my_app/current/ && bundle exec rake my_rake_task
于 2013-09-27T04:37:37.347 に答える