Herokuへのデプロイ
このサブジェネレータを使用すると、JHipsterアプリケーションをHerokuクラウドにデプロイできます。
サブジェネレータの実行
サブジェネレータを実行する前に、Heroku CLIをインストールする必要があります。
また、Herokuアカウントの作成を実行し、次のコマンドを実行してCLIでログインする必要があります。
**$ heroku login**
Enter your Heroku credentials.
Email: YOUR_EMAIL
Password (typing will be hidden): YOUR_PASSWORD
Authentication successful.
2022年11月より、Herokuは完全に無料のプランを提供しなくなりました。 これは、適切に認証されたHerokuアカウントが必要であることを意味します。 そして、最小限のdynoオプションと最小サイズのPostgresを使用してアプリケーションをデプロイする場合、費用は月額約12ドルになります。
Herokuサブジェネレータは、選択した構成に一致するアドオンを使用したfree dynosを使用してアプリケーションを作成します。
次のアドオンをサポートしています。
- Heroku Postgres:PostgreSQLの使用
- JawsDB:MySQLまたはMariaDBの使用
- Heroku Redis:Redisの使用
- MemCachier:Memcachedの使用
- Bonsai Elasticsearch:Elasticsearchの使用
- Okta:OAuth2/OIDC(オプション)の使用
アプリケーションをHerokuにデプロイするには、次のコマンドを実行します。
jhipster heroku
これにより、アプリケーションが「プロダクション」モードでパッケージ化され、データベースを持つHerokuアプリケーションが作成され、コードがアップロードされ、アプリケーションが起動されます。
アプリケーションがマイクロサービスの場合は、レジストリURLを指定するように求められることに注意してください。これを行う方法については、下にスクロールしてください。
アプリケーションは90秒以内に起動する必要があります。起動しない場合はシャットダウンされます。 プラットフォームの負荷によっては、90秒未満での開始は保証されません。
Javaバージョンの変更
Herokuサブジェネレータの実行時にJavaバージョンを選択できます。 デフォルトでは、Java 11です。 Heroku公式ドキュメントでサポートされているJavaバージョンにすべて記載されています。
Javaのバージョンを例えば後で11
から14
に変更したい場合は、プロジェクトのルートフォルダのsystem.properties
で変更する必要があります。
java.runtime.version=14
アプリケーションを再デプロイすると、Java 14が使用されます。
アプリケーションの導入
デフォルトでは、アプリケーションはgit経由でデプロイされます。 これは、コードをプッシュすると、Herokuがそれをビルドしてサーバにデプロイすることを意味します。 コードを他のサーバーにプッシュできない場合、またはプッシュしたくない場合は、jarオプションを使用して実行可能なjarをデプロイできます。 Herokuはdockerイメージのデプロイもサポートしていますが、サブジェネレータはまだこのオプションをサポートしていません。
展開したアプリケーションの更新
gitオプションの使用
git経由でデプロイする場合、herokuと呼ばれる新しいリモートが作成されています。 新しいコードをデプロイするには、変更をherokuリモートにプッシュする必要があります。
git push heroku master
これは、このコマンドを実行するマシン上でジェネレータを実行したことを前提としています。 まだ作成していない場合は、の手順に従ってHerokuリモートを作成する必要があります。.
jarオプションを使用
実行可能なjarをデプロイすることを選択した場合、更新されたjarを作成し、新しいファイルをHerokuにデプロイする必要があります。
新しいJARの準備
アプリケーションがすでにデプロイされている場合は、次を使用して新しいデプロイを準備できます。
./mvnw package -Pprod -DskipTests
gradleを使用する場合は、次のように入力します。
./gradlew -Pprod bootJar -x test
本番環境へのプッシュ配信
これは、このコマンドを実行するマシン上でジェネレータを実行したことを前提としています。 まだインストールしていない場合は、Heroku Java CLIのインストール手順に従う必要があります。
本番にプッシュするには、次のように入力します。
heroku deploy:jar target/*.jar
gradleを使用する場合は、次のように入力します。
heroku deploy:jar build/libs/*jar
HerokuへのDockerのデプロイ
アプリをDockerコンテナとしてHerokuにデプロイもできます。これは動作しますが、Herokuのセットアップや設定は行われないため、手動で行う必要があります。このドキュメントでは、すでにjhipster heroku
を実行してアプリをデプロイしていることを前提としているため、このプロセスが実行する統合とアドオンのプロビジョニングを活用しています。
注:v6.10.2より前のバージョンのJHipsterを使用している場合は、src/main/resources/config/application-heroku.yml
に次の内容を追加する必要があります。
server:
port: ${PORT:8080}
Dockerイメージをビルドします。
./mvnw package -Pprod verify jib:dockerBuild
Gradleを使用している場合は、次のように入力します。
./gradlew -Pprod bootJar jibDockerBuild
Docker Composeを使ってローカルでテストができます。
docker-compose -f src/main/docker/app.yml up
すべてが動作することを確認したら、Herokuで新しいアプリを作成し、それをリモートとして追加します。
heroku apps:create
git remote add docker https://git.heroku.com/<your-new-app>.git
次に、以下のコマンドを実行して、JHipsterアプリをDockerイメージとしてデプロイします。<...>
プレースホルダをHerokuアプリ名に置き換えてください。アプリ名がわからない場合は、heroku apps
を実行してください。
heroku container:login
docker tag space registry.heroku.com/<heroku-app>/web
docker push registry.heroku.com/<heroku-app>/web
次に例を示します。
heroku container:login
docker tag space registry.heroku.com/fast-peak-70014/web
docker push registry.heroku.com/fast-peak-70014/web