約束の地

キャロ組

Rails 5.2 の production 環境を Capistrano でデプロイしようとして Missing `secret_key_base`... などと怒られたとき

結論

config/master.key をデプロイする必要がある*1

解決方法(の一つ)

set :linked_files, 'config/master.key' という行をデプロイ設定のファイルに追加して、master.key ファイルを shared/config/master.key の場所に置けばよいです。

備考

環境変数 ENV["RAILS_MASTER_KEY"]master.key の内容を指定してもよいです*2

なお、database.yml や 外部API のトークン なんかも全部 credentials.yml.enc に詰め込めば、.gitignore するファイルは master.key だけになるので見通しが良くなると思います。ただ、それがベターな方法かと問われると現状ではちと分からないです。

*1:当たり前

*2:おそらくその方が一般的かと

Powered by はてなブログ