なんかこれも前に書いた気がするな。
#{RAILS_ROOT}/config/credentials.yml.enc
は master.key
が無いと復号化できなく欠けた状態では動きません。
master.key
はたしか .gitignore
に標準で記載されているので、何らかの手段で rails new
した人が、チーム内で共有する必要があります。
credentials をやめる方法
#{RAILS_ROOT}/config/enviroments/
以下の RAILS_ENV
に対応する development|staging|production|test それぞれの .rb ファイルから以下のように記述しておきます。
# master.key を参照する (credentials.yml.enc を使う場合はこっち) # config.require_master_key = true # SECRET_KEY_BASE を参照する (credentials.yml.enc をやめる場合はこっち) config.require_master_key = false
おまけ
マーこれ過去に「なくても動くでしょ」って言われて共有拒否られたのがトラウマになってて、 credentials.yml.enc
否定派になっちゃんすよね。
(動くって言ってた人が rails new
してたので、そりゃあんたの環境では動くでしょうよ、という顔になっていた。)
正直なところ、昨今では .env
.direnv
的なドットファイルで管理せず AWS のパラメタストアのような、インスタンスの外部に存在するサービスに秘匿保存しろ (インスタンスには依存する秘匿情報の類は保存しない、気軽に壊して作れるように) みたいな風潮を感じつつ。
Rails5.2 リリース当時の、ウェブアプリも暗号化がんばろうねとか Docker などコンテナが本格的になる前の風潮から進んだ感あるので。
コンフィグとして存在するのは確かにアリなんだけど、有効化はしなくていいよなって個人的な気持ちから無効化して運用しています。