概要
GCR ( Google Container Registry ) にホストされている Image を Cloud Run にデプロイする。
自作コンテナは次回。
チュートリアル
Github Actions 用サービスアカウント作成
IAM -> サービスアカウントの作成より、以下の Role で作成。
- Cloud Run 管理者
- Cloud Run サービスエージェント
- ストレージ管理者
作成したサービスアカウントを選択 -> キー -> 鍵を追加 -> JSON を選択し、ダウンロードしておく。 後で使う。
Github リポジトリ作成
ローカルの作業スペース。
mkdir test_github_actions
Github にリポジトリを作成し、以下までやっておく。
echo "# cloudrun-github-actions" >> README.md git init git add README.md git commit -m "first commit" git branch -M main git remote add origin https://github.com/runble1/cloudrun-github-actions.git git push -u origin main
Github Actions 作成
GCP 公式 の Github Actions を参考にする。環境変数は 1 つ利用している。
- GCP_SA_KEY
Github Actions 用の yaml 作成。
mkdir .github mkdir .github/workflows vi .github/workflows/deploy.yml
main ブランチに push すると hello-cloud-run という名前の CloudRun がデプロイされる。
name: Deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy to Cloud Run
id: deploy
uses: google-github-actions/deploy-cloudrun@v0
with:
image: gcr.io/cloudrun/hello
service: hello-cloud-run
credentials: ${{ secrets.GCP_SA_KEY }}
- name: Show Output
run: echo ${{ steps.deploy.outputs.url }}
Github リモートリポジトリに Secrets 登録
GCP_SA_KEY
の Secrets を Github のリモートリポジトリに登録する。
- リポジトリの Setting
- 左サイドバー Secrets → Actions
- New repository secret
- Name に
GCP_SA_KEY
, Value に上でダウンロードしたサービスキーの Json
登録完了するとこんな感じ。
デプロイ
git push する。
git add . git commit -m "Add github actions" git push
確認
Github 上で Github Actions のワークフローが成功したか確認
- Github のリモートリポジトリの Actions
- 「Add github actions」
GCP 上で CloudRun がデプロイされたことを確認。
まとめ
Github Actions を利用して Cloud Run をデプロイする体験を得た。
コードは Github に。
GitHub - runble1/cloudrun-github-actions
Contribute to runble1/cloudrun-github-actions development by creating an account on GitHub.
自作コンテナの場合はこちら。
Github Actions で自作コンテナを CloudRun にデプロイ
概要 前回 GCR 上にホストされているイメージを CloudRun へデプロイした。 今回は自作コンテナをデプロイする。 チュートリアル Github 用サービスアカウント作成 ワークロード ID フェデレーションが推奨されているが、今回...
参考
GitHub - google-github-actions/deploy-cloudrun: A GitHub Action for deploying services to Google Cloud Run.
A GitHub Action for deploying services to Google Cloud Run. - google-github-actions/deploy-cloudrun
Cloud RunとGitHub Actionsでコンテナアプリケーションのデプロイを自動化する
コメント