Deploying to Dokku の git push dokku master
がうまくいかず、エラーが表示される。
エラー内容
$ git push dokku master
〜〜〜省略〜〜〜
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
rake aborted!
ActiveSupport::EncryptedFile::MissingKeyError: Missing encryption key to decrypt file with. Ask your team for your master key and write it to /tmp/build/config/master.key or put it in the ENV['RAILS_MASTER_KEY'].
〜〜〜省略〜〜〜
!
! Precompiling assets failed.
!
To ujull.com:gnote
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'dokku@ujull.com:gnote'
config/application.rb の config.assets.initialize_on_precompile = false
対応が必要と思っていたが、ログを上までスクロールして見てみたところ、「rake aborted!」の箇所に、キーがないよ、というメッセージがあった。
対応策
Rails 5.xのCredentialsを使っている場合、dokkuサーバー側の環境変数にRAILS_MASTER_KEYを設定する必要があるため、以下をubuntuサーバー側で実行する。
$ dokku config:set [アプリ名] RAILS_ENV=production RAILS_MASTER_KEY=[master.keyの値]
【例(KEYはダミー)】$ dokku config:set ruby-rails-sample RAILS_ENV=production RAILS_MASTER_KEY=B6ZSTIWcxFvoJvlqnxlFjXEDOuVnZVBhw
そのあとに、 $ dokku config [アプリ名]
で設定内容を確認できる。