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