7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Renderデプロイ時の! Unable to load application: ArgumentError: Missing `secret_key_base` エラーの対処法

Posted at

概要

個人開発の際Renderでデプロイしようとしたところ

! Unable to load application: ArgumentError: Missing secret_key_base for 'production' environment, set this string with bin/rails credentials:edit`

というエラーが発生し苦戦したので備忘録として残しておきます。
※初学者で知識に乏しいため誤った記述があればコメントいただけると幸いです。

secret_key_baseとは

Railsのアプリケーションでは、secret_key_baseというシークレットキーが必要です。これは、暗号化やセッションの検証など、さまざまなセキュリティ関連のタスクで使用されます。production環境で、このキーが設定されていないことが原因で今回のエラーが発生しました。

対処方法

対処方法は簡単です。
ローカル環境で、以下のコマンドを実行してRailsのクレデンシャルを編集します。

bash
bin/rails credentials:edit

このコマンドを実行すると、エディタが開きます。

secret_key_base を設定
クレデンシャルのエディタが開いたら、secret_key_baseの値を設定します。

yml
production:
  secret_key_base: YOUR_SECRET_KEY_BASE

YOUR_SECRET_KEY_BASEは、適切なシークレットキーの値に置き換えてください。

シークレットキーの生成方法について

1.Railsのコマンドを使用してキーを生成

以下のコマンドを実行して新しいsecret_key_baseを生成します。

rails secret

このコマンドで、ランダムな文字列を出力できます。この文字列を新しいsecret_key_baseの値として使用します。

2.生成されたキーをクレデンシャルに設定
bin/rails credentials:editを実行してクレデンシャルを編集し、先ほど生成したキーをsecret_key_baseの値として設定します。

yml
production:
  secret_key_base: [生成されたキー]

これで、適切なsecret_key_baseの値がクレデンシャルに設定されます。
変更を保存(:wq)してエディタを終了(:wq!)します。

再度デプロイ
上記の変更を行った後、再度Renderへのデプロイを試みます。

7
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?