我試圖創建Capistrano的任務,將顯示一個變量被設置dotenv從.ENV文件使用dotenv Capistrano的3個自定義任務內變量
任務:
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部署就好了)
任何人都可以告訴我我錯過了什麼?
編輯:
,因爲它可能還不夠清楚,我真正需要的是在我的本地機器訪問.ENV,實際案例:
我店內祕密API密鑰。 env,它將用於部署後通知外部api服務,api密鑰本身不應該存儲在其他任何地方,並且是應用程序獨佔的(每個應用程序都有自己的密鑰),因此永久存儲它不是一個好主意本地環境
這對我來說可以通過在Bundler.require(..)之前添加到我的config/application.rb中。我還必須手動將.env和.env.staging文件添加到生產服務器上的共享/目錄以繞過capistrano錯誤。 – earth2jason