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