Kanji
・Cloud engineer / freelance ・Born in 1993 ・From Ehime / Living in Shibuya, Tokyo ・5 years AWS experience Profile details
Table of Contents
# ① Define environment-specific variable substitutions substitutions: _CPU: "1" _MEMORY: "256Mi" _MAX_INSTANCES: "1" _MIN_INSTANCES: "1" _REGION: "asia-northeast1" steps: # ② Build and push container image to Artifact Registry - name: "gcr.io/cloud-builders/docker" args: ["build", "-t", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/prod:${COMMIT_SHA}", "."] - name: "gcr.io/cloud-builders/docker" args: ["push", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/prod:${COMMIT_SHA}"] # ③ Deploy container to Cloud Run - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: bash args: - -c - | gcloud run deploy \ ${REPO_NAME} \ --image ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/prod:${COMMIT_SHA} \ --cpu=${_CPU} \ --memory=${_MEMORY} \ --max-instances=${_MAX_INSTANCES} \ --min-instances=${_MIN_INSTANCES} \ --region ${_REGION} # ④ Artifact lifecycle & cleanup of older image digests - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: bash args: - -c - | apt -y install jq five_minutes_ago=$(date -d '5 minutes ago' +%Y-%m-%dT%H:%M:%S) for image in `jq -c ".[]"<<<$(gcloud artifacts docker images list ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME} --format json --filter "updateTime<${five_minutes_ago}")`; do gcloud artifacts \ docker \ images \ delete \ ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/prod@$(jq -r ".version"<<<$image;) \ --delete-tags \ --quiet done
_CPU
_MEMORY
_MIN_INSTANCES
_MAX_INSTANCES
_REGION
substitutions
${COMMIT_SHA}
--cache-from
gcloud run deploy
gcloud artifacts docker images list