Open3
[Cloud Build編]調べたことのメモ
cloudbuild.yaml の例
検証用環境想定なので、インスタンス数やCPUは調整必要
steps:
# Build the container image
- id: build
name: 'gcr.io/cloud-builders/docker'
env:
- DOCKER_BUILDKIT=1
args: ['build', '-t', '${_IMAGE_PATH}', '.']
# Push the image to Artifact Registry
- id: push
name: 'gcr.io/cloud-builders/docker'
args: ['push', '${_IMAGE_PATH}']
# Deploy image to Cloud Run
- id: deploy
name: 'gcr.io/cloud-builders/gcloud'
args:
[
'run',
'deploy',
'$_SERVICE_NAME',
'--image',
'${_IMAGE_PATH}',
'--region',
'asia-northeast1',
'--platform',
'managed',
'--port',
'3000',
'--revision-suffix',
'$SHORT_SHA',
'--concurrency',
'50',
'--max-instances',
'10',
'--allow-unauthenticated',
'--env-vars-file',
'$_ENV_FILE',
]
# Delete old images from Artifact Registry
- id: delete-old-images
name: 'asia-docker.pkg.dev/gcr-cleaner/gcr-cleaner/gcr-cleaner-cli:latest'
args: ['--repo=${_REPOSITORY_PATH}', '--keep=5', '--tag-filter-any=.*']
images:
- $_IMAGE_PATH
substitutions:
_REPOSITORY_PATH: 'asia-northeast1-docker.pkg.dev/${PROJECT_ID}/registries/${_SERVICE_NAME}'
_IMAGE_PATH: 'asia-northeast1-docker.pkg.dev/${PROJECT_ID}/registries/${_SERVICE_NAME}:${SHORT_SHA}'
options:
dynamicSubstitutions: true
timeout: 1200s
Firebaseを使っているプロジェクトでCloud Buildを用いてCloud Runにデプロイするときの権限設定
アカウント | 権限 |
---|---|
Compute Engine default service account | 編集者 サービス アカウント トークン作成者 ストレージ管理者 |
Cloud Build | Cloud Build サービス アカウント サービス アカウント ユーザー Cloud Run 管理者 Storage オブジェクト閲覧者 Artifact Registry 管理者 |
Slackにデプロイ開始を通知
steps:
- name: gcr.io/cloud-builders/curl
args:
[
'-X',
'POST',
'-H',
'Content-type: application/json',
'--data',
'{"text":"デプロイ開始"}',
'https://hooks.slack.com/',
]