2

私はこれが初めてなので、これがどうあるべきかわかりません-

私は webapp を作成し、ホスティングに heroku を使用しています

複数の開発者が github で同じコードに取り組んでもらいたいです。

heroku に 2 台のサーバーが必要です。1 台は本番用、もう 1 台はテスト用です (ステージングとも呼ばれますか?)。

git push heroku master問題は、最初にセットアップされたherokuサーバーへのアプリケーションにwebappフォルダーから何をするかを知っていることです。

  1. git を使用して同じフォルダから 2 つの異なる heroku インスタンスにデプロイするにはどうすればよいですか? 可能ですか/推奨されますか?

  2. github にプッシュする場合、通常はマスターですが、テスト用に別のブランチを用意する必要がありますか?

  3. heroku インスタンス間でアプリを転送する方法はありますか?

heroku と github の推奨デプロイルーチンがあるところがあれば読んでいただけると嬉しいです

4

1 に答える 1

8

git push heroku master「heroku」を実行すると、プッシュ先のリモート リポジトリが識別されます。あなたの場合、「heroku」は本番サーバーへの参照のようです。同様に、github を指す「オリジン」リモートがある可能性があります。

git リモートを一覧表示すると、おそらく次のように表示されます。

> git remote -v 
heroku  git@heroku.com:heroku_app_name.git (fetch)
heroku  git@heroku.com:heroku_app_name.git (push)
origin  git@github.com:your_github_org/repo_name.git (fetch)
origin  git@github.com:your_github_org/repo_name.git (push)

別の heroku アプリにプッシュするには、そのアプリを新しい git リモートとして追加するだけです。

git remote add heroku-staging git@heroku.com:heroku_staging_app.git

これで、必要に応じていずれかのリモートにプッシュできるようになります。

git push origin master //push to github
git push heroku-staging //deploy to staging
git push heroku master //deploy to production

一般に、手動で heroku にプッシュしないことをお勧めします。できれば、継続的インテグレーション サーバーで github を監視し、変更をプッシュするたびにテストを実行し、自動テストに合格した場合にのみステージングにデプロイできます。その後、手動でトリガーされた CI タスクを使用して、現在ステージングされているコミットを本番環境にプッシュすることもできます (または、本番環境のデプロイも自動化することもできます)。

herokuコマンドラインを使用して同じ構成を実行できます。これにより、両方の heroku アプリで環境変数やその他の設定を管理するための優れた方法も提供されます: https://devcenter.heroku.com/articles/multiple-environments

于 2012-10-06T06:48:05.730 に答える