Heroku CLI のインストール
brew tap heroku/brew && brew install heroku
% heroku -v heroku/7.60.2 darwin-x64 node-v14.19.0
デプロイする
注意ポイント① Spring Boot の Java の version を Heroku に教える
注意ポイント② Procfile を作る
↓ とエラーが出た。
at=error code=H10 desc="App crashed" method=GET path="/" host=xxx.herokuapp.com request_id=xxx fwd="106.73.3.130" dyno= connect= service= status=503 bytes= protocol=https
原因は、./build/libs/*-plain.jar を実行してしまっているから。 実は ./gradlew build では、 以下の2つの jar が生成される。
- ${APP_NAME}-0.0.1-SNAPSHOT-plain.jar
- ${APP_NAME}-0.0.1-SNAPSHOT.jar
このうち、Spring Application として実行可能なのは、 plain ではないほうの ${APP_NAME}-0.0.1-SNAPSHOT.jar である。 ところが、Heroku の実行は、 ./build/libs/*.jar を実行する指定がされており、plain が実行されてしまっているっぽい。 これを防ぐため、プロジェクトのルートに Procfile を作成し、plain ではないほうの jar を起動するように設定する。
web java -Dserver.port=$PORT $JAVA_OPTS -jar ./build/libs/realworld-example-app-0.0.1-SNAPSHOT.jar