3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Cloud BuildでGitHubのpushを契機にdockerイメージをビルドする

Posted at

今回はGoogle Cloud Buildを使ってGitHubのpushを契機にdockerイメージをビルドする方法をご紹介します。

Cloud Buildとは

Google Cloudが提供しているCIツールです。
Cloud Buildの詳細はこちらの公式ページにて
Container Builder.png

はじめに

Cloud BuildはGoogle Kubernetes Engineなどで利用するdockerイメージのビルドからアプリケーションのテストまでその用途は幅広いです。

今回は、dockerイメージをビルドするところに焦点を当てています。

Cloud BuildとGitHubを統合してCIを回すには、以前はいくつかの段階を踏む必要がありました。
昨今、Cloud Buildはガンガン改善されてきており、より簡単に連携できるようになりました。

この記事の前提

  • GCPにアカウントを持っている事
  • dockerを触った事がある事
  • 自分のGitHubにDockerfileを含んだリポジトリがある事

この記事で取り扱わない事

  • Dockerfileの書き方など

Cloud Buildの始め方

  1. まずGCPにアクセス
  2. ナビゲーションメニューの「ツール」にあるCloud Buildを開く
  3. メニューから「トリガーを作成」を開く
  4. ソースはGitHubを選択
  5. GitHubの認証
  6. 対象のリポジトリを選択(Dockerfileが存在するもの)
  7. トリガー設定は一旦すべてデフォルトで「トリガーを作成」
  8. 作成されたトリガーの「トリガーを実行」を開き対象ブランチを選択
  9. メニューから「ビルド履歴」を開くと、現在ビルドしているものが表示される
  10. しばらく待つ
  11. グリーンになりビルドが成功した事を確認
  12. ナビゲーションメニューのContainer Registryで実際にビルドされたイメージを確認
  13. 以上

ビルドが開始されるまでおよそ3分くらいで設定が完了します。
しかもGitHub連携済み!
なんて楽!!

出来立てのdockerイメージをローカルからpullしてみる

※ dockerとgcloudがローカルマシンにインストールされている前提です

  1. gcloud auth login で認証
  2. gcloud config set project $PROJECT_ID でプロジェクトを設定
  3. gcloud docker -a でGCP認証情報でDocker認証を構成
  4. docker pull <イメージ名>:<タグ> でpullできる事を確認

※ 4.の手順で必要なイメージ名とタグはContainer Registryから確認できます。
Fullscreen_2018_09_28_17_09.png

最後に

ここまではめちゃくちゃ簡単に進みます。
しかし、実際の殆どのユースケースではこれ以上の細かい設定が欲しくなってくると思います。
先ほどの手順のトリガー設定で細かい指定ができます。
例えば、ビルド対象のブランチの指定など。

そして、更に細かく設定したい場合は、cloudbuild.yaml というマニフェストファイルを用意して対応が可能です。
例えば、任意のタグをdockerイメージに付与するなど。

こういったより実践的なTipsに関しては別途記事にして展開します。

快適なdockerライフを!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?