---
title: Cloud Native Buildpacks Tutorial - 1. packのinstallとbuilderの確認
tags: ["Cloud Native Buildpacks Tutorial", "Cloud Native Buildpacks", "Paketo", "Series"]
categories: ["Dev", "Infrastructure", "CloudNativeBuildpacks", "Paketo"]
date: 2020-04-28T03:09:09Z
updated: 2020-04-28T07:42:30Z
---

[Cloud Native Buildpacks](https://buildpacks.io/)の使い方を紹介します。

Cloud Native Buildpacksを使ってラップトップ上で簡単にOCIイメージを作成できる[`pack`](https://github.com/buildpacks/pack) CLIを使って説明します。

**目次**
<!-- toc -->

### 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](https://buildpacks.io/docs/concepts/components/builder/)を表示します。Builderには複数の[Buildpack](https://buildpacks.io/docs/concepts/components/buildpack/)と[Stack](https://buildpacks.io/docs/concepts/components/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](https://paketo.io/)に移行されます。
そのため、TutorialではPaketoを使用します。

0.10.0の段階で`cloudfoundry/cnb`はPaketo Buildpacksが含まれており、以下の組み合わせのBuilderの中身は実質的に同じです。

* `cloudfoundry/cnb:bionic` => `gcr.io/paketo-buildpacks/builder:base`
* `cloudfoundry/cnb:cflinuxfs3` => `gcr.io/paketo-buildpacks/builder:full-cf`
* `cloudfoundry/cnb:tiny` => `gcr.io/paketo-buildpacks/builder:tiny`
