背景信息:我已經制作了一個Ruby on Rails應用程序,它利用了紅寶石寶石Devise。在使用寶石時,我已將OpsWorks控制檯中的寶石密鑰配置爲環境變量。使用AWS設計初始化寶石OpsWorks
當運行before_migrate.rb
部署掛鉤我運行命令rake assets:precompile
。但是我在部署日誌中收到錯誤。
execute "rake assets:precompile" do
cwd release_path
command "bundle exec rake assets:precompile"
environment "RAILS_ENV" => rails_env
end
上資源執行動作
run
錯誤 '執行[耙 資產:預編譯]' Mixlib :: ShellOut :: ShellCommandFailed預期處理與[0],但接收到的「退出1 ' ----開始束EXEC耙資產的輸出:預編譯--trace ---- STDOUT:STDERR:
**調用資產:預編譯(FIRST_TIME) **調用資產:環境(first_ti我)
**執行資產:環境
**調用環境(FIRST_TIME)
**,可執行環境耙中止! Devise.secret_key未設置。請注意以下添加到您的設計初始化:
config.secret_key =「*****」
我所知道的環境變量,最終被我的before_migrate.rb
文件I輸出設置,因爲環境變量登錄。當我硬編碼config.secret_key
一切工作正常。
問題:在使用OpsWorks時,我的項目中的初始化程序config/initializers/*
在任何環境變量設置之前運行?有沒有另一種解決方法,沒有硬編碼密鑰或SSH到每個實例?
是你不能夠簡單地通過** config.secret_key = ENV [「SECRET_KEY_BASE」]訪問它**? – BinaryMee
這是正確的。我先試了一下,但沒有奏效。 – Asdrubal