Quarkus を native バイナリを作成して実行してみる

目次

概要

今回は、Quarkus API プロジェクトを Native Compile して実行してみるということをやってみようと思います!

前回は、Quarkus は JVM で実行しても高速だ!という記事を出したんですが、やっぱり、せっかく Quarkus を使ってるのだから、Native Compile したいでしょ!という動機です。

ということで、まずプロジェクトから作成していきましょう!

Quarkus のプロジェクトの始め方の詳細はこちらの記事を参考にしてください!そして、前提として GraalVM はインストール済みで PATH も通しておいてください!

DockerFile の確認

プロジェクトを作成すると、以下のフォルダ構成になっていて、

src / main / docker

の配下に Dockerfile.native というファイルがあると思います。こちらが native compile 参照するファイルになります。

ちなみに、ファイルの中身はこんな感じです。

このファイルのコメントアウト部分に、コンパイルの方法が書かれていて親切ですね!

GraalVM を使って Native Compile

では、ここから、実際に Native Compile をやってみましょう!

まず、Maven を使って Native バイナリを作成していきます。以下のコマンドを入力してください。

mvn package -Pnative -Dnative-image.docker-build=true

うまくいけば、以下のような結果になると思います。PCのスペックにもよるかもしれませんが、7分ほどかかりました…

Image の作成

では次に、dockerfile を基に docker image を 作成していきます!

以下のコマンドを入力してください

docker build -f src/main/docker/Dockerfile.native -t quarkus/recipe

以下の結果が出れば OK です!

Successfully とでてますが、実際に image が作成されているかどうかを確認しておきましょう!

docker images

はい。しっかりと image できていますね!

作成した image を実行しよう

最後に作成した image を実行してみましょう。

以下のコマンドを入力してください!

docker run -i -rm -p 8080:8080 quarkus/recipe

最後に、curl でエンドポイントを叩いて確認してもらえれば終了です!

これで、native compile で quarkus を実行が終わりです!最初の Native バイナリを作成するところで 7分ほどかかりましたが、image の実行はかなり早かったです!

SpringBoot のプロジェクトを image にして実行をしてみるとその速さは一目瞭然だと思います。

まとめ

今回は、Quarkus API のプロジェクトを GraalVM を使って Native compile して実行してみました。

基本的には、というかほぼすべて、コマンドやWebで作ったプロジェクトであれば既存の docker ファイルに手順が載っていて特に困ったことはありませんでした!

実行してみた感想としては、実行スピードはほんとに早かったです。JVM実行でも速さ!という記事を書いていたんですけど、それを超える速さでびっくりしました。速いとは下調べで分かっていたんですけど、やっぱり自分でやってみるとより速さが実感できていいですね。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

新卒4年目です。spring boot, jquery, vue を使ってフロントエンド開発、quarkus、azure kubernetesを使ってバックエンドを作ってました。 今は、UXデザイナーを目指して勉強中です! よろしくお願いします。

コメント

コメントする

CAPTCHA


目次