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

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

## 概要

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

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

## install

$ brew install buildpacks/tap/pack

## setup

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

$ 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 を利用してみる。

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

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

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

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

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

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

### GCR (Google Container Registry) に push

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

### GHCR (GitHub Container Registry) に push

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

## 実行してみる

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

## 感想

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

## 参考