🚀
Cloud RunにCloud Deployで自動デプロイする
前回の記事では、Cloud Deployを使わずにCloud Runにデプロイしていましたが、今回はCloud Deployでデプロイする方法を紹介します。
Skaffold 構成を準備する
skaffold.yaml
apiVersion: skaffold/v3alpha1
kind: Config
metadata:
name: deploy-run-quickstart
profiles:
- name: dev
manifests:
rawYaml:
- run-dev.yaml
deploy:
cloudrun: {}
Cloud Run サービスを準備する
run-dev.yaml
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: deploy-qs-dev
spec:
template:
spec:
containers:
- image: my-app-image
traffic:
- percent: 100
latestRevision: true
デリバリー パイプラインとターゲットを作成する
clouddeploy.yaml
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name: my-run-demo-app-1
description: main application pipeline
serialPipeline:
stages:
- targetId: run-qsdev
profiles: [dev]
---
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: run-qsdev
description: Cloud Run development service
run:
location: projects/my-project/locations/us-central1
executionConfigs:
- usages:
- DEPLOY
- RENDER
serviceAccount: my-account
パイプラインとターゲットを Cloud Deploy サービスに登録する
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=my-project
自動でデプロイする
cloudbuild.yaml
# Deploy container image to Cloud Run
- name: gcr.io/google.com/cloudsdktool/cloud-sdk
entrypoint: gcloud
args:
- 'deploy'
- 'releases'
- 'create'
- 'rel-${SHORT_SHA}'
- '--project'
- '${_PROJECT}'
- '--delivery-pipeline'
- '${_PIPELINE_NAME}'
- '--region'
- '${_REGION}'
- '--images'
- 'my-app-image=${_IMAGE_NAME}:latest'
最後に
今回は自分でCloud Runの設定をyamlで書きましたが、動作がとても遅いです。
結局、フルマネージドの方が良いと思います。
私はCloud Buildをこれからも使っていきたいと思いました。
Discussion