Heroku-18 スタック
最終更新日 2021年12月22日(水)
この記事では、Ubuntu 18.04 をベースとした Heroku-18 スタックについて説明します。スタックとは
新機能
現在、このスタックのベースは Ubuntu 18.04 であり、Heroku-16 スタックで使用されていた Ubuntu 16.04 とは異なります。
パッケージのインストールは、apt-get
の --no-install-recommends
オプションを使用して実行されました。このオプションにより、以前のスタックに存在していた、主に X11 ウィンドウシステムと Tcl/Tk に関連する多数の不必要なパッケージが削除され、スタックイメージのサイズが削減されました。Heroku の Ubuntu パッケージに関する記事では、以前のスタックと比較した、すべてのパッケージの追加、変更、削除の一覧を掲載しています。
使用可能なソフトウェア
Heroku の各スタックは、異なるオペレーティングシステムパッケージおよび言語ランタイムのバージョンをサポートしています。このサポートは通常、スタックが最初にリリースされた時点でそれぞれの保守担当主体によって活発に開発されていたソフトウェアに限定されています。
言語ランタイム
サポートされている言語ランタイムのバージョンについての最も正確な情報は、個々の言語のページを確認してください。
buildpack | ショートハンド | ランタイムのバージョン |
---|---|---|
Ruby | heroku/ruby |
ランタイムのバージョン |
Node.js | heroku/nodejs |
ランタイムのバージョン |
Python | heroku/python |
ランタイムのバージョン |
Java | heroku/java |
ランタイムのバージョン |
PHP | heroku/php |
ランタイムのバージョン |
Go | heroku/go |
ランタイムのバージョン |
オペレーティングシステムパッケージ
Heroku-18 で使用可能なすべてのオペレーティングシステムパッケージの一覧は、「Heroku スタックの Ubuntu パッケージ」の記事を参照してください。
サポート期間
Heroku-18 は Ubuntu 18.04 をベースとしています。サポートは、2023 年 4 月までです。Heroku のスタックアップデートポリシーの詳細を確認してください。
Heroku-18 の使用
Heroku-20 は現在、新しく作成されるアプリのデフォルトスタックです。
Heroku-18 を代わりに使用するには、アプリの作成時に明示的に指定する必要があります。
$ heroku create --stack heroku-18
既存のアプリのスタックを変更できます。新しいスタックは、次に実行されるビルドから使用されます。
$ heroku stack:set heroku-18
app.json
を使用している場合、レビューアプリと Heroku CI の実行で同じスタックが使用されるよう、このファイルでもスタックを指定する必要があります。
{
"stack": "heroku-18"
}
既存のアプリのスタックは app.json
を使用して変更できません。指定されたスタックは、レビューアプリである新しく作成されたアプリ、Heroku CI テスト実行アプリ、または Heroku Button を使用して作成されたアプリにのみ適用されます。
Heroku-18 へのアップグレード
新しいスタックにアップグレードするときに実行する手順を理解するには、スタックアップグレードガイドを参照してください。
新しいスタックにアプリを移行した後は、アプリケーションを入念に監視して、正常に実行されていることを確認するようお勧めします。
Heroku-18 の Docker イメージ
Heroku-18 は、次の 2 つの Docker イメージとして入手できます。
- ランタイムイメージ (
heroku/heroku:18
) は、ほとんどのワークロードの場合に、ビルドイメージよりもお勧めします。 - ビルドイメージ (
heroku/heroku:18-build
) は、開発用ヘッダーとツールチェーンを含んでいるため、サイズが大きくなっています。そのため、ソースコードまたは依存関係をコンパイルする必要があるお客様にのみお勧めします。
Heroku-18 をベースイメージとして使用するには、Dockerfile
で次のコマンドを使用します。
FROM heroku/heroku:18
Docker イメージのデプロイについての詳細は、Heroku Container Registry および Runtimeのドキュメントを参照してください。