2
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.

dotenv-rails必要なのか?

Posted at

現在awsで作成しているアプリケーションをデプロイ中に
dotenv-rails必要あるのかと思ったので投稿

####・dotenv-railsとは

Railsで使える環境変数を管理できるgem(dotenv-rails)や.envの導入方法

簡単にいうと自分で変数セットしていろんなところで使えちゃいます。ということなのだが

rails5.2からはcredentials.yml.encという物がデフォルトで追加されています。皆さんのconfigフォルダの中にも存在すると思います。これも環境変数指定できいろんなところで使えちゃいます。

どっちも同じならどっち使ってもいいじゃん!て思いますよね〜

ただただ変数をセットするdotenv-railsとは違いcredentials.yml.encは暗号化して環境変数を保持するんです!そしてconfig/master.keyを使って複合して使うという違いがあります。

環境変数は見られたくないんだけど〜っていうところに使う物なので暗号化は大切ですね!

もしdotenv-railsを使い大事な値を.envで管理していると何かの拍子にフォルダを見られた際にふむふむここねといって.env内見られたら終わりです。

credentials.yml.encであれば見られても暗号化されているので「わけワカメ」となるわけですね。

#####おまけ

credentials.yml.encはgitに上げてもmaster.keyがないかぎり他の人はどうしようもないのでデプロイの際にcloneで持ってきてmaster.keyをローカルから引っ張ってこれば使えちゃうんですよね。

セキュリティー面を考えたらこっちの方が良いのは明らかですねー

ただcredentials.yml.encを使用する時には

Rails.application.credentials.セットした環境変数
#dotenv-railsだと
ENV['セットした環境変数']

長い!! でもVScodeだと何回か打ってると予測してくれるから問題なし

そして環境変数を設定するときも(dockerだと)

docker-compose run -e EDITOR="vim" web rails credentials:edit

でvim開いて編集という面倒くささはあります。

ちなみにFile encrypted and saved.とでてしまう人は多分vimが入っていないのでinstallしてください

僕の場合だと

Dockerfile
#追加 apt-get install vim

いやーまだまだ知らないことがたくさんあって面白いな〜

何か間違っていたらご教授お願いします。

では〜⭐️

2
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
2
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?