これだけで${PROJECT_ROOT}/target/universal/
に起動スクリプトなどを含んだパッケージ(zip)が生成される。
内部でsbt-native-packager
が呼ばれる。
これは一応プラグインだけど、今のPlayではビルトインなので、addSbtPluginする必要はない。
けど、まだEBでそのままデプロイできるパッケージではない。
EBで実行するには、上記で生成されるパッケージの最上位にエントリーポイントとなるProcfile
が必要。
中身は、
web: sh bin/${YOUR_SCRIPT} -Dhttp.port=5000
これだけ。
${YOUR_SCRIPT}
は、パッケージ内のbin/
にある起動スクリプト名を記述。- portが5000番なのは、EB(java8)がnginxを含んでいて、それのフォワード先が5000番だから。別にNginx側を変えてもいい。
上のProcfileを適当なところに置いておき、それをパッケージに含めるための設定を行う。
例えば、${PROJECT_ROOT}/files/Procfile
に置いたとすると、
mappings in Universal += file("files/Procfile") -> "Procfile"
これをbuild.sbt
に追記する。
これで${PROJECT_ROOT}/target/universal/
にProcfileを含んだzipが生成されるはず。
確認のために、解凍してみるといい。
あとはEBにできたzipをアップロード、デプロイするだけ。
cd ${PROJECT_ROOT}
echo 'web: sh bin/${YOUR_SCRIPT} -Dhttp.port=5000' > ./files/Procfile
echo 'mappings in Universal += file("files/Procfile") -> "Procfile"' >> ./build.sbt
sbt dist
以上。