スタック
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2019年07月23日(火)
Table of Contents
スタックは、Heroku によってキュレートおよび維持されているオペレーティングシステムイメージです。 スタックは通常、Ubuntu などの既存のオープンソースの Linux ディストリビューションに基づいています。Heroku のアプリケーションは特定のスタックを対象とし、buildpack は、あるアプリのソースコードを、そのスタックと互換性がある実行可能パッケージに変換する役目を担っています。
Heroku は現在、Docker コンテナを使用する機能とともに、2 つのスタック (Heroku-16 および Heroku-18) を提供しています。
Heroku が正式サポートする buildpack は、現在のすべてのスタックを扱います。カスタムの buildpack では、すべてのスタックを扱うことが保証されていません。
新しく作成されたすべての Heroku アプリのデフォルトスタックは Heroku-18 です。
スタックのバージョン | 基本テクノロジ | サポート期限 | |
---|---|---|---|
Heroku-18 (デフォルト) | Ubuntu 18.04 | 2023 年 4 月 | 詳細 |
Heroku-16 | Ubuntu 16.04 | 2021 年 4 月 | 詳細 |
コンテナ | Docker | 開発者が維持* | 詳細 |
*コンテナには、他の Heroku スタックのキュレートおよび維持されているオペレーティングシステムが含まれていません。デプロイするコンテナの基本レイヤを選択して維持する責任は、お客様側にあります。
Heroku スタックの Ubuntu パッケージには、各スタックで使用可能なパッケージが一覧表示されています。
アプリが使用中のスタックの表示
アプリが使用中のスタックは、heroku apps:info
CLI コマンドで判別できます。
$ heroku apps:info -a example
=== example
...
Stack: heroku-16
...
新規スタックへの移行
アプリで使用可能なスタックは、heroku stack
CLI コマンドで表示できます。
$ heroku stack
アプリを別のスタックに移動するとき、コード変更が必要な場合もあります。stack:set
CLI コマンドにより、使用するスタックが Heroku に通知されますが、コードに必要な変更を加える責任は、アプリケーション開発者であるお客様側にあります。
この記事では最新のスタックにアップグレードする方法について説明します。