はじめに
Cloud Native Buildpacksを実現する一つであるPaketo Buildpacksを使ってjavaアプリのビルドをしてみます。
Cloud Native Buildpacksについては、下記でざっくり解説しています。

Cloud Native Buildpacksについてざっくり理解する
はじめにCloudNativeBuildpacksについてざっくり解説し、実際に使ってどんなことができるか試してみたいと思います。CloudNativeBuildpacksとはCloudNativeBuildpacksとは、アプリケーション...
Paketo Buildpacksとは
Paketo Buildpacksとは、Cloud Native Buildpacksを実現するプロジェクトの一つです。
主要な言語やフレームワークのbuildpackやbuilder、stackなどが提供されています。
Paketo Buildpacks - Paketo Buildpacks
Githubには各言語やフレームワーク用のbuildpacksのリポジトリがあります。
Paketo Buildpacks
CloudNativeBuildpackimplementationsforpopularprogramminglanguageecosystems-PaketoBuildpacks
Builder
Builderはfull
、base
、tiny
の3種類が用意されています。
- paketobuildpacks/builder:full
- paketobuildpacks/builder:base
- paketobuildpacks/builder:tiny
Builders - Paketo Buildpacks
javaアプリをビルドしてみる
実際にPaketo Buildpacksを使って、javaアプリのビルドをしてみたいと思います。
今回利用するサンプルアプリはPaketo Buildpacksのサンプルアプリ(Java Maven Sample Application)を利用します。
samples/java/maven at main · paketo-buildpacks/samples
Acollectionofsamples.Contributetopaketo-buildpacks/samplesdevelopmentbycreatinganaccountonGitHub.
まずはcloneして、ディレクトリを移動します。
git clone https://github.com/paketo-buildpacks/samples
cd java/maven
今回はbase
のBuilderをデフォルトとして設定します。
pack config default-builder paketobuildpacks/builder:base
pack
コマンドでビルドします。
pack build paketo-maven-app
イメージを確認してみると、作成されたのがわかります。
❯ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
paketo-maven-app latest 1268838af761 42 years ago 264MB
ビルドしたイメージを使ってコンテナを実行します。
docker run -d -p 8080:8080 -e PORT=8080 paketo-maven-app
curl
を使って確認すると、アプリケーションが起動しているのが確認できます。
❯ curl -s http://localhost:8080/actuator/health | jq .
{
"status": "UP"
}