きり丸アドベントカレンダー2020の5記事目です。
Herokuを初めて使ってみました。なんだかんだ、デプロイ設定が面倒くさいだろうと使っていませんでしたが、アドベントカレンダーで使用するいい機会だと思って素振りしました。
いろんな設定を自動でやってくれているので非常に便利でした。
ゴール
- Herokuにアプリをデプロイする
- Javaアプリを公開する
- PostgreSQLを用意する
手順
Heroku用の設定ファイルを準備する
system.properties
がHerokuの設定ファイルになります。
HerokuはJavaのデフォルトバージョンが8ですので、こちらで明示的に設定する必要があります。マイナーバージョンを指定することはできなかったので、とりあえず15を指定するといいでしょう。
JDKにzuluを指定することもできそうでしたが、正直JDKに強いこだわりはないので私はこのままにしておきます。
java.runtime.version=15
Herokuアカウントを作成する
Herokuアカウントを準備します。下記ページから登録してください。
Heroku上にアプリケーションを登録
ログイン後、「New」ボタンをクリックし、表示された「Create new App」ボタンをクリックしてください。
または、下記URLにアクセスしてください。
https://dashboard.heroku.com/new-app
「App name」に、一意になるような名前を付けてください。私の場合は「kirimaru-todoapp」という名前を付けました。ハンドルネーム+日付であればほぼ確実に一意になると思います。
HerokuのPostgreSQLを準備
下記URLにアクセスして、右側にある「Install Heroku Postgres」をクリックしてください。
https://elements.heroku.com/addons/heroku-postgresql
いったん、「Add-on plan」は「Hobby Dev - Free」でいいでしょう。物足りなくなった時に、アップグレードしましょう。「App to provision to」は先ほど付与したアプリケーション名を入力します。私は「kirimaru-todoapp」です。
入力後は、「Submit Order Form」を入力して登録してください。
Herokuの自動Deploy設定する
ヘッダの「Deploy」をクリックすると画面遷移します。
「Deployment Method」に、GitHubを選択してください。「App Connected to GitHub」には、自分が登録しているGitHubのリポジトリを選択してください。
「Automatic deploys」はリリースしたいブランチを選択して、「Enable Automatic Deploys」をクリックしてください。別ブランチを使う理由もないので、「master」のままでいいでしょう。
これで、GitHubへのPushをすると自動でデプロイが走ます。
Manual Deployも実行して動作確認してください。手動デプロイに失敗するのであれば、自動化しても当然失敗するので。
もしうまく動いていなかった場合
画面右上の「More」の「View logs」を確認してください。すべてのログではありませんが、最新ログ数行が表示されています。ログ画面を表示している状態でデプロイしたらすべてのログが表示されることになりますので、再デプロイして頑張って原因をみつけてください。
自動Deployを確認する
適当にGitをPushして確認してください。
正しく設定されていれば、ヘッダの「Overview」をクリックして表示される画面にイベントが表示されています。
デプロイされた結果ページ
きり丸のHerokuは次のURLにアクセスすれば表示されています。
https://kirimaru-todoapp.herokuapp.com/
ソースコード
アドベントカレンダー5日目。
github.com
終わりに
これで常に最新Verを公開している状態になるので、人に見せることができるようになりました。
まだ中身を作りこんでないので、公開する意味がないと思うかもしれません。しかし、HerokuがJava 15に対応していないかもしれない、PostgreSQLが使えないかもしれない、ということが最後に判明して後々修正する方がたいへんです。
今回、ミニマムに動作確認を行ったことで、本番とローカルで別々にDB設定を行う必要がないことに気付けました。Javaのデプロイ対象も特に指定する必要もありませんでした。これもひとつの工数削減です。
ここまで設定すれば、あとはJavaを作りこんでいくだけです!
この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。
参考記事
Heroku公式開発ドキュメント devcenter.heroku.com
類似記事
きり丸アドベントカレンダー2020 adventar.org
6日目のアドベントカレンダーの記事:ToDo