Cloud Native Buildpacksの使い方を紹介します。
Cloud Native Buildpacksを使ってラップトップ上で簡単にOCIイメージを作成できるpack CLIを使って説明します。
目次
Packのインストール
Macの場合は
brew install buildpack/tap/pack
Linuxの場合は
PACK_VERSION=0.10.0
curl -L -s https://github.com/buildpacks/pack/releases/download/v${PACK_VERSION}/pack-v${PACK_VERSION}-linux.tgz | tar xz
chmod +x pack
mv pack /usr/local/bin
またpackはDockerを使用しますので、別途Dockerのインストールが必要です。Cloud Native Buildpacks自体はDockerが必須ではありません。
本Tutorialは次のバージョンで確認しています。
$ pack version
0.10.0+git-06d9983.build-259
$ docker -v
Docker version 19.03.8, build afacb8b
Builderの確認
pack suggest-buildersで推奨のBuilderを表示します。Builderには複数のBuildpackとStack(ベースイメージ)が含まれます。
$ pack suggest-builders
Suggested builders:
Cloud Foundry: cloudfoundry/cnb:bionic Ubuntu bionic base image with buildpacks for Java, NodeJS and Golang
Cloud Foundry: cloudfoundry/cnb:cflinuxfs3 cflinuxfs3 base image with buildpacks for Java, .NET, NodeJS, Golang, PHP, HTTPD and NGINX
Cloud Foundry: cloudfoundry/cnb:tiny Tiny base image (bionic build image, distroless run image) with buildpacks for Golang
Heroku: heroku/buildpacks:18 heroku-18 base image with buildpacks for Ruby, Java, Node.js, Python, Golang, & PHP
Tip: Learn more about a specific builder with:
pack inspect-builder [builder image]
Pack 0.10.0の段階ではsuggestされるBuilderがcloudfoundry/cnbですが、今後Paketo Buildpacksに移行されます。
そのため、TutorialではPaketoを使用します。
0.10.0の段階でcloudfoundry/cnbはPaketo Buildpacksが含まれており、以下の組み合わせのBuilderの中身は実質的に同じです。
cloudfoundry/cnb:bionic=>gcr.io/paketo-buildpacks/builder:basecloudfoundry/cnb:cflinuxfs3=>gcr.io/paketo-buildpacks/builder:full-cfcloudfoundry/cnb:tiny=>gcr.io/paketo-buildpacks/builder:tiny