Ruby

【Ruby on Rails】herokuで環境変数を設定する方法

rails5.2以降から、sercret.ymlからcredentials.yml.encに移行になりました。
本番環境での環境変数の設定につまずいたため、下記に手順をまとめました。

動作環境

  • Ruby 2.5.1
  • Ruby on Rails 5.2.4

環境変数の設定

rails5.2以降では、.gitignoreに/config/master.keyがデフォルトで指定されているため、本番環境ではcredentials.yml.encを読み取ることが出来ずサーバ起動時にエラーが発生します。
config/environments/production.rbの設定がconfig.require_master_key = trueのとき

.
.
remote:      Missing encryption key to decrypt file with. Ask your team for your master key and write it to /tmp/build_28d4b89cb989ae71072d0bdb96793752/config/master.key or put it in the ENV['RAILS_MASTER_KEY'].
remote: 
remote:  !
remote:  !   Precompiling assets failed.
remote:  !
remote:  !   Push rejected, failed to compile Ruby app.
remote: 
remote:  !   Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to change-life.
remote: 
To https://git.heroku.com/app-name.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/app-name.git'

そのため下記の手順で本番環境に環境変数を設定します。

$ heroku config:set RAILS_MASTER_KEY=`ここに/config/master.keyの値をセット`

以下を実行し正しく環境変数が設定されていればOK

$ heroku config

削除する場合

$heroku config:unset RAILS_MASTER_KEY

以上です。

参考↓↓

Ruby on Railsのおすすめ本

Ruby on Rails定番の一冊です。Railsの機能について、プログラミングスクールなどでも教わらない内容も学習できて、理解を深めることができました。
Railsについてもっと詳しく知りたいという方はぜひ読んでみてください。↓↓

  • この記事を書いた人

コウダイ

都内のWeb系自社開発企業に勤務するエンジニア|33歳1児のパパ|ブログ歴4年→月間6,000PV|新卒で手取り18万のホテルマン6年→プログラミングを900時間勉強→100社以上応募しアラサー未経験から7ヶ月でフルリモートのWEB系自社開発エンジニアに転職し年収100万円UP|【人生を自由に、ノンストレスで生きる】をテーマに、30歳で文系・異業種未経験からITエンジニアに転職したノウハウの他、プログラミングやブログで稼ぐ方法など、「時間や場所に縛られずに稼ぐ」方法を発信しています。

-Ruby