Dockerを利用し、GCPのVMインスタンスにデプロイする方法をまとめます。
前提
- Githubでプロジェクトを管理
- GithubのリポジトリにDockerファイルがある
Overview
大まかな流れは以下の流れとなります。
- Cloud BuildにPush
- Container RegistryにPush
- VMインスタンスをアップデート
Cloud BuildにPush
Cloud Buildのページにてトリガーを作成。
また、Githubと接続を行う。
詳細はこちら
https://cloud.google.com/cloud-build/docs/?hl=ja
接続し、トリガー条件を設定。今回はmasterブランチが更新されるとbuild開始。
Container RegistryにPush
Cloud BuildへのPushが成功すると自動的にContainer RegistryにもPushされます。
Pushされた最新のイメージの名前をコピー
[エリア]/[プロジェクトID]/[コンテナ名]:[タグ名]
##コマンドで行う場合
gcloud builds list
でbuild一覧を取得し、StatusがSuccessであることを確認。
gcloud container images list
でイメージ一覧を取得し、
gcloud container images list-tags --format="get(digest)” [イメージ名]
でタグを取得。
最新版のタグを組み合わせて、
[イメージ名]@[タグ名(ハッシュ化)]
のフォーマットで保存
VMインスタンスをアップデート
VMインスタンスのページにてターゲットとなるインスタンスを編集。
コピーしたコンテナイメージ名をコンテナイメージのテキストフィールドに入力し、保存。
コマンドで行う場合
gcloud compute instances list
でインスタンス名一覧を取得
gcloud compute instances update-container [インスタンス名] --container-image [イメージ名]@[タグ名(ハッシュ化)]
先ほどコピーした[イメージ名]@[タグ名(ハッシュ化)]を利用し、上記コマンドを実行。