2
0

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.

Railsアプリをherokuにデプロイした際にcredentialsがnilになってしまう問題について

Posted at

環境

  • ruby3.0.2
  • rails7.0.0
  • Docker

原因

test.ruby
user_name: Rails.application.credentials.gmail[:user_name],
password: Rails.application.credentials.gmail[:password],

個人制作する上で上記のようなコードを書いていたのだが、Herokuにデプロイする際にRails.application.credentialsnillになっているというエラーがでた。
credentialsはcredentials.yml.encを参照している。

credentials.yml.encとはどういうファイルなのか

credentials.yml.encは秘匿情報の設定、つまり誰にも見られたくない情報を記述するファイルです。上述したコードだとgmailのユーザーネームやパスワードは第三者に知られると悪用される危険性があるのでcredentials.yml.encに記述します。
そしてこのファイルを暗号化して保存するためにmaster.keyを使用します。
このファイルはgitなどにpushする時、自動で.gitリポジトリの対象から省いてくれます。

解決方法

Herokuにデプロイした時もmaster.keyがpushの対象から外れてしまうためcredentialsnilになっていた。
環境変数にmasterkeyを設定することで問題を解決できた。

$ heroku config:set RAILS_MASTER_KEY=`cat config/master.key` 
2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?