1
1

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 3 years have passed since last update.

【rails】本番環境にSECRET_KEY_BASEの値を渡す

Last updated at Posted at 2020-08-19

rails 5.0で開発中、ハマったポイントの内の一つ。
AWSのECSでデプロイ試みたところ、コンテナの無限起動状態になったため、色々調べたところ、
「実行に必要な環境変数の指定漏れなどコンテナの内部処理が原因で終了するケース」とのこと。↓
Amazon ECS サービスのスロットリング(コンテナ無限起動)をCloudWatch Eventsで検知する

私の場合、SECRET_KEY_BASEがうまく設定されていなかったのが原因のようでした。

#結論
dotenv-railsというgemを使って管理する

#対応
gemをインストール

Gemfile
gem 'dotenv-rails'

SECRET_KEY_BASEを生成

bash
bundle exec rake secret

上記コマンドで表示された長い文字列を.envファイルに書く。.envファイルはプロジェクト配下につくる。

.env
SECRET_KEY_BASE="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

AWS、ECSでデプロイしている場合は、上記設定後イメージを再度ECRにプッシュ後、新しいタスクのリビジョンを作成し、サービスを更新したら、ちょっと待てば反映される。

#ぼやき
普通にタスク定義のrailsコンテナの環境変数のとこに書いてもOKなはずだが、私の場合なぜかうまくいかなかった(コンテナ無限起動が止まらなかった)いまだ原因不明。。

#参考
Railsで環境変数を設定、取得

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?