やりたいこと
Renderを使用しRailsアプリケーションをインターネット上に公開するため、手動デプロイを実行したところビルドエラーが発生。
ビルドエラーを解消しデプロイを成功させたい。
エラー内容
==> Build failed 😞
==> Common ways to troubleshoot your deploy: https://docs.render.com/troubleshooting-deploys
調査
デプロイログからエラー内容把握を試みるも、エラー内容は明示されていなかった。ローカル上では問題なく動いているため、Renderでの一般的な設定ミスを調査することに決定。
原因
Renderの環境変数(RAILS_MASTER_KEY)値の設定ミスが原因。
RAILS_MASTER_KEYはRailsアプリケーションの暗号化キーを示す環境変数であり、config/credentials.yml.encファイルの内容を復号するために必要。 RAILS_MASTER_KEY値が不正だとcredentials.yml.encファイルを複合できない結果、ビルド時にcredentials.yml.encの読み込みができず、 Railsがエラーを発生させるとのこと。
※Railsはcredentials.yml.encにデータベースのパスワードや API キーなどの機密情報を暗号化して保存している。
credentials.yml.enc:暗号化された認証情報ファイル
解決策
RAILS_MASTER_KEY値を正しく書き換えることでビルドおよびデプロイに成功。正しい値はRailsアプリのスケルトン構造のうち、
app > config > master.keyに記載。
$ code config/master.key
※master.keyはrails credentials:editコマンド実行で自動生成されたもの)
※master.key
:config/credentials.yml.enc
の復号キー
参考