リリース
最終更新日 2024年12月03日(火)
Table of Contents
コードをデプロイしたり、設定変数を変更したり、アプリのアドオンリソースを変更したりするたびに、Heroku によって新しいリリースが作成され、アプリが再起動します。アプリのリリース履歴を表示したり、デプロイまたは設定変更が失敗した場合に一時的に以前のリリースにロールバックしたりできます。
リリースの作成
アプリの最初のリリースは v1
という名前で、それ以降のリリースのたびに数字が大きくなります。
この例では、コードのデプロイによりリリース v10
が作成されます。
$ git push heroku main
...
-----> Compressing... done, 8.3MB
-----> Launching... done, v10
http://severe-mountain-793.herokuapp.com deployed to Heroku
すでに述べたように、アプリの環境設定またはアドオンリソースを変更するたびに、リリースも作成されます。
リリース履歴の一覧表示
アプリのリリース履歴を表示するには、heroku releases
コマンドを使用します。
$ heroku releases
Rel Change By When
---- ---------------------- ---------- ----------
v52 Config add AWS_S3_KEY jim@example.com 5 minutes ago
v51 Deploy de63889 stephan@example.com 7 minutes ago
v50 Deploy 7c35f77 stephan@example.com 3 hours ago
v49 Rollback to v46 joe@example.com 2010-09-12 15:32:17 -0700
Change
列の値は、各リリースの理由を示します。デプロイの場合、この値にはデプロイされた Git コミットのハッシュが含まれます。リリースでの変更を Git リポジトリ内の変更と関連付けるには、このハッシュを使用します。次に例を示します。
$ git log -n 1 de63889
commit de63889c20a96347679af2c5160c390727fa6749
Author: <stephan@example.com>
Date: Thu Jul 11 17:16:20 2013 +0200
Fixed listing CSS and localization of description.
heroku releases:info
コマンドを使用してリリースの詳細情報を取得できます。
$ heroku releases:info v24
=== Release v24
Change: Deploy 575bfa8
By: jim@example.com
When: 6 hours ago
Addons: deployhooks:email, releases:advanced
Config: MY_CONFIG_VAR => 42
RACK_ENV => production
ロールバック
本番環境にデプロイしたコードにバグがありロールバックする必要がある場合は、可能な限りローカルで git revert
を使用して該当するコードの変更を元に戻して、再デプロイしてください。
設定が正しくない、または Heroku プラットフォームに固有の他の問題が原因でリリースをロールバックするには、heroku rollback
コマンドを使用します。次のコマンドは、アプリを以前のリリースにロールバックします。
$ heroku rollback v40
Rolled back to v40
リリース番号を指定しない場合、アプリは 1 つ前のリリースにロールバックされます。
heroku rollback
コマンドは新しいリリースを作成します。このリリースは、ロールバック先のリリースからコンパイルされた slug または OCI イメージと環境設定 (アドオン関連の環境設定を含む) をコピーします。
以下の状態はどれも、heroku rollback
コマンドによってロールバックされません。
- アドオンのプロビジョニング
- プロビジョニングされたアドオンはプロビジョニングされたまま、プロビジョニング解除されたアドオンはプロビジョニング解除されたままになります。
- アドオン関連の環境変数はロールバックされます。プロビジョニングされたままのアドオンの動作に支障をきたさないよう、アドオン関連の環境設定の値を慎重に調整してください。
- アプリの Git リポジトリ (Heroku によってホストされるもの)
- アドオンまたは外部に保存されている状態
ロールバック後は、お客様の責任においてこれらのリソースを調整してください。heroku rollback
コマンドは、絶対に必要な場合のみ使用してください。
ロールバックしたリリースでの実行は、問題のあるデプロイに対する一時的な解決策にすぎません。ロールバックしたリリースで実行している場合は、発生した問題の修正をコミットし、Heroku にプッシュしてください。通常のとおり、このプッシュにより heroku
Git リモートが更新され、新しいリリースが作成されます。
Fir のリリース保存ポリシー
Fir 世代のアプリの場合、リリースに関連付けられた OCI イメージは次の条件に従って破棄されます。
- 30 日より前のリリース (最後のリリースを除く)
- 100 件を超えたリリース
OCI イメージが破棄されると、そのリリースのステータスは expired
に更新されます。OCI イメージが破棄されたリリースはロールバックの対象外です。