LoginSignup
0
0

More than 3 years have passed since last update.

Docker+Railsにdotenvを導入して環境変数を管理する

Posted at

実現したいこと

Dockerを使ったRails開発で、公開してはならないAPIキーやパスワードなどを別ファイルでGit管理する方法。

大雑把な順番

  1. gemを追加
  2. .envファイルにプロジェクトで使う環境変数を記述
  3. .gitignoreに.envファイルを含める
  4. erbテンプレートに従って環境変数を渡す

使用したバージョン

  • Rails6
  • ruby 2.7.2

手順

gem 'dotenv-rails'を追加

Gemfile
gem 'dotenv-rails'

コンテナ内にbundle installを行う

bash
docker-compose run コンテナ名 bundle install 

docker-compose.ymlを編集

yml内にenv_fileと書くことで環境変数を管理するファイルを読み込む設定ができる

docker-compose.yml
code:docker-compose.yml
 web:
    省略
    env-file:
        - .env(環境変数を管理したいファイル名を記述)

コンテナをビルドする

docker-compose.ymlを編集したので改めてビルドする

docker-compose build

.envファイルに設定したい環境変数を書く

.env
 MAP_API_KEY="発行したAPIキー"
 PASSWORD="パスワード"

.envファイルをgitignoreに追加

.gitignore
 /.env

viewのerbテンプレートで環境変数として渡す

index.html.erb
 以上省略
 <script src="https://maps.googleapis.com/maps/api/js?key=<%=ENV['MAP_API_KEY']%>&callback=initMap" async defer></script>

ここで重要なのがerbテンプレートに従って、 <%=ENV['']%>と書くという事。
これをせずに、ENV['MAP_API_KEY']と書いて渡しており、上手くviewで表示できず、2日ほど詰まっていた。

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