2
2

環境変数の導入方法

Posted at

はじめに

現在友人依頼のアプリケーション作成中です
環境変数の導入方法毎度忘れてしまうので、メモしておきます!

環境変数とは

OSが持つ変数のことです
APIの秘密鍵などGitHubにあげたくない情報を、情報漏洩を防ぐために利用されます
環境変数を管理することができるgem「dotenv-rails」を使用していきたいと思います

dotenv-railsを導入

Gemfileに追記する

Gemfile.
:
gem 'dotenv-rails'

bundle installを実行し、envファイルを作成

 $ bundle install
 $ touch .env

環境変数の設定方法

設定したい環境変数をenvファイルに入力します

.env
ADMIN_EMAIL="任意のemailを入力"
ADMIN_PASSWORD="任意のパスワードを入力"

今回はseedファイルで環境変数を呼び出します

seeds.rb
# Admin データの作成
Admin.find_or_create_by!(email: ENV['ADMIN_EMAIL']) do |admin|
  admin.password = ENV['ADMIN_PASSWORD']
end

seedファイルに追加したデータを作成します

$ rails db:seed

Githubにenvファイルをアップしないようにする

.gitignoreファイルの最終行に/.envを追加する

.gitignore
:
.env

最後にコマンドを実行し、envファイルが表示されなければ問題ありません!

$ git status

コマンド実行で、envファイルが入力されている場合

.envファイルをgitignoreファイルから除外できない時の対処法

こんな感じのログがでました

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   .gitignore

ec2-user:~/environment/my_crop_plan (feature/dotenv_rails) $ git status
On branch feature/dotenv_rails
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   .env
        modified:   .gitignore
        modified:   Gemfile
        modified:   Gemfile.lock
        modified:   db/seeds.rb

下記のコマンド実行で無事解決されました!

$ git restore --staged .env
$ git add .
$ git status
On branch feature/dotenv_rails
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   .gitignore
        modified:   Gemfile
        modified:   Gemfile.lock
        modified:   db/seeds.rb

git restore --staged .envすることで、一度ステージされている情報をステージから削除し、
git add .することで解決しました!

さいごに

知人はこの確認ができていなかったのか、.envファイルがgitHubにアップされてしまっていたようです💦
.envが除外されているかは必ず確認するようにしましょう!

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