絶対に忘れるのでメモしておく。
ほんとにただの自分用メモ
gcloudコマンドを使える状態にしておく必要がある
macならbrew(cask)でインストールして、インストール直後に表示される指示に従って環境変数を.zshrcなんかに設定するだけ。
$ brew install --cask google-cloud-sdk
あとは gcloud auth login する。ブラウザが開いてアカウントを選択して権限許可したらオッケー
$ gcloud auth login
サービスを有効にする
Container RegistryとCloud RunとCloud Buildを有効にする。
今後はArtifact Registryを使うべきなのかもしれないけれど。
$ gcloud services enable containerregistry.googleapis.com
$ gcloud services enable run.googleapis.com
$ gcloud services enable cloudbuild.googleapis.com
Dockerをビルド&pushする
イメージをアジアに置く場合には asia.gcr.io 、USの場合は gcr.io
$ gcloud builds submit --tag asia.gcr.io/$GCP_PROJECT_ID/$REPOSITORY_NAME
Cloud Runにイメージをデプロイする
$SERVICE_NAME に最初にデプロイするときには、未認証で参照できるように起動して良いか聞かれる。
$ gcloud run deploy $SERVICE_NAME --region asia-northeast1 --image asia.gcr.io/$GCP_PROJECT_ID/$REPOSITORY_NAME:latest
Allow unauthenticated invocations to [$SERVICE_NAME] (y/N)? y
Dockerイメージを更新して、Cloud Run の参照イメージを最新版にする
ビルド&プッシュして、最新版をデプロイするだけ(リクエストを最新に100%振り分ける)
$ gcloud builds submit --tag asia.gcr.io/$GCP_PROJECT_ID/$REPOSITORY_NAME
$ gcloud run deploy $SERVICE_NAME --region asia-northeast1 --image asia.gcr.io/$GCP_PROJECT_ID/$REPOSITORY_NAME:latest
Cloud Runの非アクティブなリビジョンを削除する
1000リビジョン以上は古いものから削除されるらしいので、特段消す必要もないのだけれど
$ gcloud run revisions list --region asia-northeast1 | grep -v ' yes ' | awk 'NR>1{print $2}' | xargs -I ARG gcloud run revisions delete ARG --region asia-northeast1 -q
おまけ
Imageのリストを表示する
$ gcloud container images list-tags asia.gcr.io/$GCP_PROJECT_ID/$REPOSITORY_NAME
Cloud Runのリビジョンリストを表示する
$ gcloud run revisions list --region asia-northeast1