web-dev-qa-db-ja.com

ワークフローへのステージング環境の追加

現在、私が作業している環境は2つあります。ローカルのdevelopmentとHerokuのproductionです。

Herokuにstaging環境を追加して、アプリをユーザーに公開する前に、すべてが期待どおりに行われることを確認したいと思います。できれば、staging環境はproduction環境とまったく同じ設定とデータを持っている必要があります。

上記を達成するために必要な手順は何ですか?

20
Fellow Stranger

まず、素因として、heroku gitリモートをステージングと本番環境としてセットアップして、gitPushステージング/本番環境を簡単に使用してそれぞれにデプロイできるようにするのが好きです。その設定を使用して、ステージング環境を作成する方法を説明します。

  1. config/environments/staging.rbを作成します。これを `config/environment /production.rb 'からコピーします。
  2. ステージングデータベースのdatabase.ymlエントリを追加します(herokuには実際には必要ありませんが、害はありません)
  3. .envファイルをバックアップします(お持ちの場合)
  4. heroku plugins:install git://github.com/ddollar/heroku-config.gitでheroku-configプラグインをインストールします
  5. heroku config:pull --remote productionを使用してheroku(本番サーバー)から環境設定をプルします
  6. .envファイルに変更を加え、次の値を構成に追加することを忘れないでください:RACK_ENV=staging Rails_ENV=stagingステージング環境構成を使用するように、.
  7. heroku fork -a production stagingを使用してHeroku環境をフォークします(これらは、本番/ステージングの代わりに必要なHerokuアプリ名です)
  8. `heroku config:Push --remotestaging 'を実行します
  9. コードをステージング環境に適切にデプロイしてください

このチュートリアルも読むことができます。herokuで複数の環境を使い始めるために使用したと思います: https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations

35
berislavbabic

heroku fork -a PRODUCTION_APP_NAME NEW_STAGE_APP_NAMEは、より速く、より簡単な方法であることがわかりました...新しいアプリを作成し、すべて(postgresデータベースを含む)をコピーします。次に、必要に応じてアドオンを手動で小さなプランにダウングレードしました(たとえば、スターター層データベース)。

実際、私たちは比較的新しいheroku pipeline:promoteを使用して、コンパイルされたスラッグをステージングから本番環境に自動的に(そして非常に迅速に)プッシュして管理し始めました。 (これは、設定または環境変数を介して環境固有の設定があることを前提としているため、コードスラグは同じです。)

8
jpwynn

Herokuのサイトにある次のガイドでは、berislavbabicによって説明されている手順は推奨されないことに注意してください。 https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations ==

詳細はここで読むことができますが、ステージング環境を本番環境と同じに保ち、herokuフォークを使用して本番環境からステージングにコピーすることをお勧めします。

6
Andrea