7

.env ファイルから dotenv によって設定された変数を表示するカピストラーノ タスクを作成しようとしています。

タスク:

namespace :test do
  task :env do
    on roles(:app) do
      info ENV['TEST_ENV'].inspect
    end
  end
end

.env ファイル:

TEST_ENV='confusing'

タスクの実行:

$ cap staging test:env
DEBUG [37c8a9e6] Running /usr/bin/env [ ! -d ~/.rbenv/versions/2.0.0-p353 ] on x.x.x.x
DEBUG [37c8a9e6] Command: [ ! -d ~/.rbenv/versions/2.0.0-p353 ]
DEBUG [37c8a9e6] Finished in 14.776 seconds with exit status 1 (failed).
 INFO nil

これは、作業中の capified rails 4 アプリの下にあります (cap staging deploy を問題なく実行できます)。

誰が私に何が欠けているのか教えてください。

編集:

十分に明確でない可能性があるため、実際に必要なのは、ローカルマシンで .env にアクセスすることです。実際のケースは次のとおりです。

私は秘密のAPIキーを.env内に保存し、展開後に外部APIサービスに通知するために使用されます。APIキー自体は他の場所に保存することは想定されておらず、アプリ専用です(各アプリには独自のキーがあります)ので、そうではありませんローカル環境に永続的に保存することをお勧めします

4

2 に答える 2

11

Dotenv.loadENVを使用する前に使用しrequire 'dotenv'、Capfileに追加する必要があります

実際には dotenv readme に記載されています: https://github.com/bkeepers/dotenv#sinatra-or-plain-ol-ruby

もっと注意深く読むべきだった..

于 2014-01-24T09:43:48.877 に答える