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 してくれる。めちゃくちゃ体験が良い。