【rails】デプロイする(環境変数の設定)

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

デプロイとは

デプロイとは、自身のpcで開発していたアプリ(サービス)を公開すること

アプリの環境には3種類ある

環境の種類概要
本番環境(production)ユーザーが使っている環境
ステージング環境(staging)本番環境をコピーした環境
新機能をリリースする前に動作確認をする
開発環境(development)pc内で開発している環境
  1. 自分のpcで開発しているローカル開発環境では、外部から見ることが出来ない
  2. クラウドにデータを公開して、みんなが見られるようにする

サーバーやクラウドの設定はめちゃくちゃ難しい・・・

Herokuというサービスが便利なので、これを使う


環境変数

環境変数とは、コンピューターが保持している変数のこと

大事な機密情報には環境変数を使うこと


情報の流出を防ぐ

AWSのアクセスコードなど大事な情報をプログラムに記述すると・・・

GitHubを公開したり他人と共有したときに、情報が漏れてしまう!!

勝手に使われて、高額請求されてしまう可能性も・・・

プログラムのソースコードからAWSのアクセスコードを書かないと、AWSにアクセスできない

→でも、ファイルに直接書かないようにする

そのため、環境変数を使うこと!

環境変数はコンピューターが保持しているので、公開されることがない


環境変数の設定

環境変数を扱うgemを入れる

Gemfileを開く

group :development, :test doには、開発環境(development)で使うものを入れる

そこにgem 'dotenv-rails'を追加する

group :development, :test do
 # 中略
  gem 'dotenv-rails'
end

本番環境ではHerokuの機能を使うので、↑は開発環境でのみ使う


dotenvをインストールできるようにする

config/application.rbを開く

Dotenv::Railtie.loadを書き加える

module Practice55BlogApp
  class Application < Rails::Application
 # 中略
    Bundler.require(*Rails.groups)
    Dotenv::Railtie.load

ターミナルでbundle installする

bundle install

インストール完了!


環境変数を入力する

.envのファイルを作る

適当に文字を入れてみる

AWS_API_TOKEN='ASDFGHJKL'

コンソール画面で、読み込めているか確認する

rails c

ENV['AWS_API_TOKEN']
# => "ASDFGHJKL"

ちゃんと読み込めている!

ただ、ここに機密情報を書いたら流出しちゃうのでは?


gitignore(Gitで管理しない)

.gitignoreに書かれたファイルは、Gitで管理されない

GitHubに載せないので、機密情報が外部に流出することがない

↓.gitignoreに書く前

↓.gitignoreに.envを追加

追加したら、「.env」のファイルがグレーになった

グレーのファイルは、Gitで管理されない


Sourcetreeにも「.env」が出てこない

#DAY26