2022年4月8日金曜日

Java で Heroku に入門する

Heroku スターターガイド (Java) | Heroku Dev Center をやっていく。(デプロイまで)

前提

  • OS: Windows 11 Pro 21H2 ビルド 22000.593
  • Docker: Docker version 20.10.13, build a224086
  • 使用するコンテナ: maven:3.8.5-openjdk-17-slim
    • Debian 系のコンテナが使いたかったので…
  • Heroku のアカウント登録済み

開発用コンテナの起動

docker run -it --rm --name heroku -v "$(pwd):/work" --workdir "/work" maven:3.8.5-openjdk-17-slim bash

必要なパッケージのインストール

apt install -y git gnupg2

Heroku コマンドのインストール

curl https://cli-assets.heroku.com/install-ubuntu.sh | sh

Heroku へのログイン

heroku login コマンドを打つと、 URL が表示されるので、そこへブラウザでアクセス。

Heroku にブラウザでログインすると、 Heroku コマンドでのログインが完了する。

# heroku login
heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/auth/cli/browser/xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb?requestor=CCCCCCC.dddddddddddddddddddddddddddddddddddddddddddddddd.eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    Warning: Cannot open browser.
Logging in... done
Logged in as mikoto2000@gmail.com

最初のアプリの準備

Heroku が用意している java-getting-started アプリをクローン。

git clone https://github.com/heroku/java-getting-started
cd java-getting-started

Heroku デプロイ時に大事なのは、 Procfile ファイル。

web: java -jar target/java-getting-started-1.0.jar

web: の後ろにコマンドを記載することで、そのプロセスが HTTP ルーティングスタックにアタッチされ、リクエストを受信できるようになるようだ。

また、 system.properties ファイルで Java バージョンを指定できる。

java.runtime.version=1.8

アプリは、 Heroku へデプロイした際に、 mvn clean install される。

Heroku へデプロイ

Heroku へデプロイ用の Git リポジトリを作成

heroku create コマンドを実行。

# heroku create
Creating app... done, ⬢ thawing-peak-21704
https://thawing-peak-21704.herokuapp.com/ | https://git.heroku.com/thawing-peak-21704.git

デプロイ(Heroku のデプロイ用 Git リポジトリへ push)

# git push heroku main
...(snip, push のログ、maven によるビルドログからデプロイ結果まで表示される)
remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] BUILD SUCCESS
remote:        [INFO] ------------------------------------------------------------------------
remote:        [INFO] Total time:  11.201 s
remote:        [INFO] Finished at: 2022-04-08T12:24:22Z
remote:        [INFO] ------------------------------------------------------------------------
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing...
remote:        Done: 72.4M
remote: -----> Launching...
remote:        Released v5
remote:        https://thawing-peak-21704.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.

アプリを開く

本来なら heroku open コマンドで開けるのだが、今回は Docker で実行しているため、 URL が表示される。

そこへアクセスする。

# heroku open
     Error opening web browser.
     Error: Exited with code 3
 
     Manually visit https://thawing-peak-21704.herokuapp.com/ in your browser.

アプリの削除

heroku apps:destroy --app <アプリ名> で削除。

# heroku apps:destroy --app thawing-peak-21704
     WARNING: This will delete ⬢ thawing-peak-21704 including all add-ons.
     To proceed, type thawing-peak-21704 or re-run this command with --confirm thawing-peak-21704

> thawing-peak-21704
Destroying ⬢ thawing-peak-21704 (including all add-ons)... done

「確認のためもう一回アプリ名を入力しろ」と言われるので、その通り入力すると、削除される。

参考資料

0 件のコメント:

コメントを投稿