-
Notifications
You must be signed in to change notification settings - Fork 0
Heroku上の本番環境・ステージング環境について
ShinyaKato edited this page May 20, 2018
·
1 revision
本番環境、ステージング環境をHeroku上に構築している。
それぞれ、Heroku Appの管理権限者から権限を付与してもらうこと。
本番環境へのデプロイmasterブランチのテストが成功した時点で自動で行われる。
ステージングは自動的に行われる設定にはなっていない。
ステージングは開発中のブランチを本番と同様の環境で動作確認するのに用いる。
手動で任意のブランチをデプロイできる。
ステージング環境にはBasic認証などを用いて関係者以外アクセスできないようにすることを推奨する。
特に公開前の問題をテストする用途にステージングを用いる場合は気をつけること。
- Ruby:
Gemfile
のruby
から自動的に特定される。
https://devcenter.heroku.com/articles/ruby-versions - bundler: Herokuがバージョンを固定している。
Gemfile.lock
のbundled with
などを見てくれるわけではない。
開発環境で使うバージョンはHerokuに合わせるのがベター。
https://devcenter.heroku.com/articles/bundler-version - Node/npm:
package.json
のengines
から自動的に特定される。
https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
https://devcenter.heroku.com/articles/nodejs-support#specifying-an-npm-version - PostgreSQL: データベースの作成時に決定できる。
バージョンアップも可能らしいがあまり詳しく調べていない。
開発環境で使うバージョンは本番に合わせるのがベター。
デプロイを行うと以下の処理が行われる。
npm install
-
npm run heroku-postbuild
(npm run prod-build
) bundle install
bundle exec rake assets:precompile
Herokuサーバ上で直接コマンドを実行することができる。
本番データベースで直接クエリを発行する、直接rakeタスクを実行する際などに使用する。
https://devcenter.heroku.com/articles/heroku-cli
デプロイを行っても自動でデータベースのマイグレーションは行われないので注意。
Heroku CLIからコマンドを実行する。
以下のrakeタスクを本番/ステージング上で実行する。 他の方法では付与できない。
bundle exec rake admin_role:grant[<user_id>]