今回はGoogle Cloud Buildを使ってGitHubのpushを契機にdockerイメージをビルドする方法をご紹介します。
Cloud Buildとは
Google Cloudが提供しているCIツールです。
Cloud Buildの詳細はこちらの公式ページにて
はじめに
Cloud BuildはGoogle Kubernetes Engineなどで利用するdockerイメージのビルドからアプリケーションのテストまでその用途は幅広いです。
今回は、dockerイメージをビルドするところに焦点を当てています。
Cloud BuildとGitHubを統合してCIを回すには、以前はいくつかの段階を踏む必要がありました。
昨今、Cloud Buildはガンガン改善されてきており、より簡単に連携できるようになりました。
この記事の前提
- GCPにアカウントを持っている事
- dockerを触った事がある事
- 自分のGitHubにDockerfileを含んだリポジトリがある事
この記事で取り扱わない事
- Dockerfileの書き方など
Cloud Buildの始め方
- まずGCPにアクセス
- ナビゲーションメニューの「ツール」にあるCloud Buildを開く
- メニューから「トリガーを作成」を開く
- ソースはGitHubを選択
- GitHubの認証
- 対象のリポジトリを選択(Dockerfileが存在するもの)
- トリガー設定は一旦すべてデフォルトで「トリガーを作成」
- 作成されたトリガーの「トリガーを実行」を開き対象ブランチを選択
- メニューから「ビルド履歴」を開くと、現在ビルドしているものが表示される
- しばらく待つ
- グリーンになりビルドが成功した事を確認
- ナビゲーションメニューのContainer Registryで実際にビルドされたイメージを確認
- 以上
ビルドが開始されるまでおよそ3分くらいで設定が完了します。
しかもGitHub連携済み!
なんて楽!!
出来立てのdockerイメージをローカルからpullしてみる
※ dockerとgcloudがローカルマシンにインストールされている前提です
-
gcloud auth login
で認証 -
gcloud config set project $PROJECT_ID
でプロジェクトを設定 -
gcloud docker -a
でGCP認証情報でDocker認証を構成 -
docker pull <イメージ名>:<タグ>
でpullできる事を確認
※ 4.の手順で必要なイメージ名とタグはContainer Registryから確認できます。
最後に
ここまではめちゃくちゃ簡単に進みます。
しかし、実際の殆どのユースケースではこれ以上の細かい設定が欲しくなってくると思います。
先ほどの手順のトリガー設定で細かい指定ができます。
例えば、ビルド対象のブランチの指定など。
そして、更に細かく設定したい場合は、cloudbuild.yaml
というマニフェストファイルを用意して対応が可能です。
例えば、任意のタグをdockerイメージに付与するなど。
こういったより実践的なTipsに関しては別途記事にして展開します。
快適なdockerライフを!