Heroku Play Framework のサポート
最終更新日 2023年05月15日(月)
このドキュメントでは、Play Framework アプリケーションの認識と実行に関連した Heroku スタックの一般的な動作について説明します。Java または Scala で記述された Play Framework アプリケーションは Heroku 上で実行できます。
Heroku スターターガイド (Scala/Play 2.x)
アクティベーション
Heroku Play Framework サポートは、モジュールディレクトリを除くすべてのディレクトリの */conf/application.conf
に一致するアプリケーションに適用されます
デプロイされたアプリケーションが Play アプリケーションとして認識された場合、Heroku は -----> Play! app detected
(Play 1.2.x アプリの場合)、-----> Play 2.x - Java app detected
(Play 2.x Java アプリの場合)、または -----> Play 2.x - Scala app detected
(Play 2.x Scala アプリの場合) と応答します。Play 2.x 言語検出はファイルカウントに基づくもので、情報提供のみを目的としています。
$ git push heroku master
-----> Play! app detected
ビルド動作
Play 2.x は sbt を使用して、アプリケーションを背後でビルドします。Heroku では、sbt はアプリをビルドするために直接呼び出されます。
sbt compile stage
次のディレクトリはランタイムで不要なため、コンパイル後に slug から削除されます。
- Ivy キャッシュ (同じアプリのビルド前後で永続化されるもの)
project/boot
target/scala-*
target/streams
target/resolution-cache
ランタイムの動作
Heroku は現在、OpenJDK を使用してアプリケーションを実行しています。OpenJDK 8 がデフォルトですが、system.properties
ファイルを使用して他のバージョンを使用できます。詳細については、Java チュートリアルを参照してください。
Play 2.0.x-2.1.x
開始スクリプトは xbst-start-script-plugin によって生成されます。この開始スクリプトはデフォルトの web
プロセス定義によって使用されます。
web: target/start -Dhttp.port=$PORT $JAVA_OPTS
Play 2.2+
デフォルトの Web プロセスは native-packager プラグインからの出力を検査して判別されます。アプリに 1 つのプロセスのみが含まれる場合、次のデフォルト Web プロセスが生成されます。
web: target/universal/stage/bin/{your project name} -Dhttp.port=$PORT
注意: JAVA_OPTS
は生成されたスクリプトによって読み取られるため、プロセスに渡す必要はありません。
サポートされているバージョン
Play 2.x は sbt の依存関係解決に依存しているため、すべてのバージョンはリリース後すぐに使用できます。
アドオン
Postgres データベースは Play Framework アプリケーション用に自動的にプロビジョニングされます。これにより DATABASE_URL 環境変数が入力されます。