sachaos.md
----------

# Buildpacks をつかってサクッとコンテナイメージを作成する

このエントリーをはてなブックマークに追加

## 概要

Cloud Native Buildpacks を利用すると Dockerfile いらずでアプリケーションコードからコンテナイメージを作成することができる。

軽くコンテナイメージ作成して Kubernetes に載せたいという時に、 毎回 Dockerfile を書くのはしんどいなぁと思ってたので、 Buildpacks を試してみた。

## install

```shell
$ brew install buildpacks/tap/pack
```

## setup

いろんなビルダーがあるらしい

```shell
$ pack list-trusted-builders
Trusted Builders:
  gcr.io/buildpacks/builder:v1
  heroku/buildpacks:18
  paketobuildpacks/builder:base
  paketobuildpacks/builder:full
  paketobuildpacks/builder:tiny
```

gcr.io/buildpacks/builder:v1 を利用してみる。

```shell
$ pack set-default-builder gcr.io/buildpacks/builder:v1
```

## Go のイメージを作成してみる

Go が存在しているディレクトリで pack build を実行してみる。

```shell
$ pack build gcr.io/gcp-project-id/app
```

## イメージを作成して push する

--publish option があり、ビルドした上でコンテナレジストリに push してくれる。

### GCR (Google Container Registry) に push

```shell
$ pack build gcr.io/gcp-project-id/app --publish
```

### GHCR (GitHub Container Registry) に push

```shell
$ pack build ghcr.io/sachaos/test-app --publish
```

## 実行してみる

```shell
$ docker run --rm -p 8080:8080 gcr.io/gcp-project-id/app
```

## 感想

ワンコマンドでサクッとコンテナイメージを作成して、コンテナレジストリに push してくれる。めちゃくちゃ体験が良い。

## 参考

このエントリーをはてなブックマークに追加