BlackCoffy

cloudrunをデプロイするまでやる事

cloudrunを設定した時の備忘録です.

公式がしっかりしているので,参考にして下さい

サービスアカウントとサービスを有効にする

cloud build

運用するときは,3つの権限が必要です.

IAMからprojectID@cloudbuild.gserviceaccount.comに付けます

  • cloud run管理者
  • cloud runサービスエージェント
  • Storageオブジェクト管理者

cloud run

ブラウザからcloud runを有効にします

platformとregionを設定

必須ではありませんが,決っているなら設定しておいた方が楽です.

gcloud config set run/platform managed
gcloud config set run/region <Region> # ex. asia-northeast1

Dockerfileを準備

nodejsの場合 (オフィシャルそのまんま)

# Use the official lightweight Node.js 12 image.
# https://hub.docker.com/_/node
FROM node:12-slim

# Create and change to the app directory.
WORKDIR /usr/src/app

# Copy application dependency manifests to the container image.
# A wildcard is used to ensure both package.json AND package-lock.json are copied.
# Copying this separately prevents re-running npm install on every code change.
COPY package*.json ./

# Install production dependencies.
RUN npm install --only=production

# Copy local code to the container image.
COPY . ./

# Run the web service on container startup.
CMD [ "npm", "start" ]

コンテナをビルド&デプロイ

コンテナをビルドして,cloud source repositoryへアップロードします

# ビルドする名前は大文字不可
gcloud builds submit --project <projectID> --tag gcr.io/<projectID>/<serviceName>

最後に,CloudRunにデプロイして完了です.

gcloud beta run deploy --image gcr.io/<projectID>/<serviceName> --platform managed
> Service name: このままでOK
you like to enable and retry (this will take a few minutes)? (y/N)? y
Allow unauthenticated invocations to [xxx] (y/N)? N # 認証してないのをはじくならN