HerokuでDocker環境Rails MySQLなものを動かす。deviseかつtwitter APIを隠しながら
人に見せる用に書いていません。
自作記事のお父上、Rails+MySQL+Nginx+Unicorn+Docker+CircieCIな開発環境を作りたいえ〜の記事の続き。
上で作った環境に[Rails] deviseの使い方(rails5版)を追加し、かつTwitterAPIをgem 'dotenv-rails'
で隠しながら、本番環境のherokuにアップロードした。
①docker-compose.ymlのコマンドを変更する
command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
② gem 'dotenv-rails'を導入する
目的:TwitterAPIキーをGitHubのローカルに入れたくない
envファイルはGitの管理に入れたくないので、.gitignoreファイルに以下を追記しておきましょう。
.gitignore
に.env
を追加する。
これで.envはGitの管理下から外れます。
https://pikawaka.com/rails/dotenv-rails
http://vdeep.net/rubyonrails-dotenv
③ APIキーをdotenv-railsの.envで隠しながら導入する
[Rails] deviseの使い方(rails5版)の記事のtwitterAPIを追加する場所をENV[]に書き換える
config.omniauth :twitter, ENV['TWITTER_API_KEY'], ENV['DATABASE_URL']
④ Herokuの環境変数を変更する
多分、DATABASE_URLとTWIITER_API_KEY,DATABASE_URLはマスト。
herokuのGUIのSettingのConfig VarsかHerokuアプリの環境変数設定(CUIで設定)で設定する
Herokuアプリの環境変数設定
- ClearDBのURL確認
以下のコマンドで、ClearDBのURLが確認できる。
$ heroku config
=== <アプリの名前> Config Vars
CLEARDB_DATABASE_URL: mysql://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true
- 環境変数の設定
上記コマンドで表示されたそれぞれの値を変数に設定する。
$ heroku config:add DB_NAME='<データベース名>'
$ heroku config:add DB_USERNAME='<ユーザー名>'
$ heroku config:add DB_PASSWORD='<パスワード>'
$ heroku config:add DB_HOSTNAME='<ホスト名>'
$ heroku config:add DB_PORT='3306'
$ heroku config:add DATABASE_URL='mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true'
※ RailsのGemfileで'mysql2'を使用しているので、DATABASE_URL
はmysql2://
で始める必要がある。
設定内容を確認すると、以下のように表示される。
$ heroku config
=== <アプリの名前> Config Vars
CLEARDB_DATABASE_URL: mysql://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true
DATABASE_URL: mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true
DB_HOSTNAME: <ホスト名>
DB_NAME: <データベース名>
DB_PASSWORD: <パスワード>
DB_PORT: 3306
DB_USERNAME: <ユーザー名>
Herokuへデプロイ
Railsプロジェクトに必要な準備
-
config/environments/production.rb
に以下を追記
(この辺りの設定に関しては、後々修正します。)
config.assets.compile = true
config.assets.initialize_on_precompile=false
これプラス、gem 'dotenv-rails'
の.env
で作ったTwitterAPIをheroku側に設定する。
参考
https://qiita.com/ymstshinichiro/items/d6ea229f6eb4778006c2
https://golikyua.hatenablog.com/entry/2020/01/09/135254
https://www.sejuku.net/blog/tutorial/111347
Author And Source
この問題について(HerokuでDocker環境Rails MySQLなものを動かす。deviseかつtwitter APIを隠しながら), 我々は、より多くの情報をここで見つけました https://qiita.com/zizynonno/items/ac90862f800f1c1a1f6f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .