{"id":"c5831ff6-8300-4573-9621-84a4e7324b69","shortId":"aVSd3H","kind":"skill","title":"cloud-run","tagline":"Use when deploying containers to Google Cloud Run, editing service.yaml, using gcloud run, configuring Cloud Run Jobs, scaling, concurrency, traffic splitting, cold starts, networking, or serverless Dockerfiles.","description":"# Google Cloud Run Skill\n\n## Overview\n\nCloud Run is a fully managed serverless platform for running containerized applications. It automatically scales from zero to N based on incoming requests and charges only for resources used during request processing.\n\n## Quick Reference\n\n### Deployment Pipeline\n\n1. **Write Dockerfile** — multi-stage build with non-root user\n2. **Build image** — `gcloud builds submit --tag gcr.io/PROJECT/IMAGE:TAG`\n3. **Deploy service** — `gcloud run deploy SERVICE --image=IMAGE_URL --region=REGION`\n4. **Manage traffic** — `gcloud run services update-traffic SERVICE --to-latest`\n\n### Key Service Configuration\n\n| Setting | Flag | Recommendation |\n|---|---|---|\n| CPU | `--cpu=N` | 1-8 vCPUs; start with 1 |\n| Memory | `--memory=NGi` | 256Mi-32Gi; match to workload |\n| Concurrency | `--concurrency=N` | 80 default; lower for memory-heavy handlers |\n| Min instances | `--min-instances=N` | 1+ for production to avoid cold starts |\n| Max instances | `--max-instances=N` | Set a ceiling to control costs |\n| Timeout | `--timeout=N` | Up to 3600s for services, 86400s for jobs |\n| CPU allocation | `--cpu-throttling=false` | Use for WebSockets, background tasks |\n\n### Services vs Jobs\n\n| Feature | Services | Jobs |\n|---------|----------|------|\n| Purpose | HTTP request handling | Batch/scheduled tasks |\n| Scaling | Auto-scales with traffic | Runs to completion |\n| Timeout | Up to 60 minutes | Up to 24 hours |\n| Command | `gcloud run deploy` | `gcloud run jobs deploy` |\n\n### GPU (NVIDIA L4)\n\n```bash\ngcloud run deploy SERVICE \\\n  --gpu=1 \\\n  --gpu-type=nvidia-l4 \\\n  --cpu=8 \\\n  --memory=32Gi \\\n  --concurrency=4\n```\n\nMinimum: 4 CPU, 16 GiB. Recommended: 8 CPU, 32 GiB. Set `--concurrency` explicitly — no GPU-based autoscaling. See [references/gpu.md](references/gpu.md) for RTX PRO 6000 Blackwell, driver details, and ML inference patterns.\n\n### Production Networking & Secrets\n\n**Direct VPC Egress** — route to AlloyDB/Cloud SQL private IPs without VPC connector overhead:\n\n```bash\ngcloud run deploy SERVICE \\\n  --vpc-egress=private-ranges-only \\\n  --network=NETWORK \\\n  --subnet=SUBNET\n```\n\n**Secret mounting:**\n\n```bash\n--set-secrets=KEY=SECRET_NAME:latest\n```\n\n**Env var separator trick** — use `^||^` when values contain commas (e.g., JSON arrays in CORS origins):\n\n```bash\n--set-env-vars=^||^CORS_ORIGINS=[\"https://app.example.com\",\"https://api.example.com\"]||OTHER_KEY=value\n```\n\n**CORS origin reconciliation workflow:**\n\n1. Auto-discover Cloud Run service URL (`gcloud run services describe`)\n2. Discover GKE LB IP and Cloud Shell preview URLs\n3. Merge with existing allowed origins, deduplicate\n4. Update the secret: `gcloud secrets versions add SECRET_NAME --data-file=-`\n\n**IAP setup summary:**\n\n1. Create OAuth brand: `gcloud iap oauth-brands create --application_title=APP --support_email=EMAIL`\n2. Grant IAP service identity: `gcloud projects add-iam-policy-binding PROJECT --member=serviceAccount:service-PROJECT@gcp-sa-iap.iam.gserviceaccount.com --role=roles/run.invoker`\n3. Grant authorized users: `--member=user:EMAIL --role=roles/iap.httpsResourceAccessor`\n4. Add deployer to prevent lockout: grant deployer `roles/iap.httpsResourceAccessor` before enabling IAP\n\nSee [references/iap.md](references/iap.md) for full IAP configuration.\n\n<workflow>\n\n## Workflow\n\n### Step 1: Write the Dockerfile\n\nUse multi-stage builds (base, builder, runner). Install dependencies in the builder stage, copy only the runtime artifacts to the runner stage. Run as a non-root user. Use `tini` as PID 1 for proper signal handling.\n\n### Step 2: Build and Push the Image\n\nUse Cloud Build (`gcloud builds submit`) or a CI pipeline to build and push to Artifact Registry or Container Registry. Tag images with the git SHA for traceability.\n\n### Step 3: Deploy the Service\n\nDeploy with `gcloud run deploy`, setting CPU, memory, concurrency, and min/max instances. Use `--no-traffic` for initial test deployments, then shift traffic with `--to-latest` or percentage-based splits.\n\n### Step 4: Configure Auth and Networking\n\nUse `--allow-unauthenticated` for public APIs. For internal services, use IAM-based auth. Set up IAP (Identity-Aware Proxy) for user-facing apps that need Google login. Use VPC Connector for access to private resources.\n\n### Step 5: Tune for Cold Starts\n\nSet `--min-instances=1` in production. Enable `--cpu-boost` for faster startup. Lazy-load heavy dependencies in application code. Pre-compile bytecode for Python.\n\n</workflow>\n\n<guardrails>\n\n## Guardrails\n\n- **Always set memory and CPU limits** — without explicit limits, Cloud Run uses defaults that may not match your workload and can cause OOM kills\n- **Handle cold starts explicitly** — set `--min-instances=1` for latency-sensitive production services; use `--cpu-boost` for faster startup\n- **Use IAP for auth (not custom middleware)** — Cloud Run's built-in IAP integration eliminates custom auth code; see [references/iap.md](references/iap.md)\n- **Never store state in the container** — Cloud Run instances are ephemeral; use Cloud Storage, Firestore, or a database for persistent state\n- **Set `--max-instances`** to prevent runaway scaling and unexpected billing spikes\n- **Use `--concurrency`** to match your application's per-instance capacity — too high causes memory pressure, too low wastes resources\n- **Always use a non-root user** in Dockerfiles — Cloud Run supports it and it reduces the blast radius of container escapes\n- **Always use Direct VPC egress (not VPC connector) for private DB access** — `--vpc-egress=private-ranges-only` gives direct routing to AlloyDB/Cloud SQL private IPs with lower latency and no connector overhead\n- **Set `--concurrency` explicitly for GPU workloads** — Cloud Run cannot auto-scale on GPU utilization; the default of 80 will OOM a GPU instance\n- **Download models from GCS, not the container image, for models >10 GB** — keeps image build fast and model updates independent of deployments\n- **Use startup probes for slow-starting containers** (GPU model loading) — hold traffic until the model is ready; see [references/volumes.md](references/volumes.md)\n\n</guardrails>\n\n<validation>\n\n### Validation Checkpoint\n\nBefore delivering configurations, verify:\n\n- [ ] Dockerfile uses multi-stage build with non-root user\n- [ ] `--memory` and `--cpu` are explicitly set in the deploy command\n- [ ] `--min-instances` is set for production services\n- [ ] `--max-instances` is set to prevent unbounded scaling\n- [ ] Authentication strategy is defined (IAM, IAP, or `--allow-unauthenticated`)\n- [ ] Service account is specified (not using the default compute SA)\n\n</validation>\n\n<example>\n\n## Example\n\nMinimal Dockerfile and deploy command for a Python web service:\n\n```dockerfile\n# Dockerfile\nFROM python:3.13-slim-bookworm AS builder\nCOPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/\nWORKDIR /app\nCOPY pyproject.toml uv.lock ./\nRUN uv sync --frozen --no-dev --no-install-project\nCOPY src ./src\nRUN uv sync --frozen --no-dev\n\nFROM python:3.13-slim-bookworm AS runner\nRUN apt-get update && apt-get install -y --no-install-recommends tini \\\n    && rm -rf /var/lib/apt/lists/*\nRUN useradd --create-home appuser\nUSER appuser\nCOPY --from=builder /app /app\nENV PATH=\"/app/.venv/bin:$PATH\"\nENTRYPOINT [\"tini\", \"--\"]\nCMD [\"uvicorn\", \"myapp.main:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8080\"]\nEXPOSE 8080\n```\n\nDeploy command:\n\n```bash\n# Build and push\ngcloud builds submit --tag gcr.io/my-project/myapp:latest\n\n# Deploy with production settings\ngcloud run deploy myapp \\\n    --image=gcr.io/my-project/myapp:latest \\\n    --region=us-central1 \\\n    --cpu=1 \\\n    --memory=512Mi \\\n    --concurrency=80 \\\n    --min-instances=1 \\\n    --max-instances=10 \\\n    --cpu-boost \\\n    --service-account=myapp-sa@my-project.iam.gserviceaccount.com \\\n    --allow-unauthenticated\n```\n\n</example>\n\n---\n\n> **Note:** No Gemini CLI extension exists for Cloud Run — this skill provides unique value for Cloud Run deployments, GPU workloads, and production networking patterns not covered by other tooling.\n\n## References Index\n\nFor detailed guides and configuration examples, refer to the following documents in `references/`:\n\n- **[Services](references/services.md)**\n  - Service deployment, CLI commands, traffic management, concurrency, scaling, and resource configuration.\n- **[Jobs](references/jobs.md)**\n  - Cloud Run Jobs configuration, execution, and task parallelism.\n- **[Performance](references/performance.md)**\n  - Cold start optimization, resource tuning, concurrency guidelines, and cost/performance best practices.\n- **[Terraform Configuration](references/terraform.md)**\n  - IaC examples for services, IAM, and custom domain mappings.\n- **[Networking](references/networking.md)**\n  - Multi-container sidecars, Ingress settings, VPC Connector, and Secrets Management.\n- **[Troubleshooting](references/troubleshooting.md)**\n  - Debugging startup failures, latency, memory issues, and security/reliability best practices.\n- **[Dockerfile Patterns](references/dockerfile.md)**\n  - Multi-stage builds, uv package manager, distroless variants, non-root user setup, and tini init system.\n- **[Cloud Build](references/cloudbuild.md)**\n  - Cloud Build pipelines, cache warming, multi-target builds, tag strategy, and Artifact Registry push patterns.\n- **[Identity-Aware Proxy (IAP)](references/iap.md)**\n  - IAP setup for Cloud Run, JWT validation, user auto-provisioning, environment variables, gcloud commands, and Terraform configuration.\n- **[GPU Support](references/gpu.md)**\n  - NVIDIA L4 and RTX PRO 6000 Blackwell configuration, ML inference best practices, concurrency tuning, and GPU Jobs.\n- **[Volumes and Health Checks](references/volumes.md)**\n  - Cloud Storage FUSE mounts, NFS (Filestore), startup probes, and liveness probes.\n\n---\n\n## Official References\n\n- <https://docs.cloud.google.com/run/docs>\n- <https://docs.cloud.google.com/run/docs/release-notes>\n- <https://docs.cloud.google.com/run/docs/configuring/task-timeout>\n- <https://docs.cloud.google.com/run/docs/configuring/services/cpu>\n- <https://docs.cloud.google.com/run/docs/configuring/services/gpu>\n- <https://docs.cloud.google.com/run/docs/mapping-custom-domains>\n\n## Shared Styleguide Baseline\n\n- Use shared styleguides for generic language/framework rules to reduce duplication in this skill.\n- [General Principles](https://github.com/cofin/flow/blob/main/templates/styleguides/general.md)\n- [GCP Scripting](https://github.com/cofin/flow/blob/main/templates/styleguides/cloud/gcp_scripting.md)\n- [Bash](https://github.com/cofin/flow/blob/main/templates/styleguides/languages/bash.md)\n- Keep this skill focused on tool-specific workflows, edge cases, and integration details.","tags":["cloud","run","flow","cofin","agent-skills","ai-agents","beads","claude-code","codex","cursor","developer-tools","gemini-cli"],"capabilities":["skill","source-cofin","skill-cloud-run","topic-agent-skills","topic-ai-agents","topic-beads","topic-claude-code","topic-codex","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-opencode","topic-plugin","topic-slash-commands","topic-spec-driven-development"],"categories":["flow"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cofin/flow/cloud-run","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cofin/flow","source_repo":"https://github.com/cofin/flow","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (10,682 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:07:35.709Z","embedding":null,"createdAt":"2026-04-23T13:03:58.270Z","updatedAt":"2026-05-18T19:07:35.709Z","lastSeenAt":"2026-05-18T19:07:35.709Z","tsv":"'-8':129 '/app':1007,1069,1070 '/app/.venv/bin':1073 '/astral-sh/uv:latest':1003 '/bin':1005 '/cofin/flow/blob/main/templates/styleguides/cloud/gcp_scripting.md)':1402 '/cofin/flow/blob/main/templates/styleguides/general.md)':1397 '/cofin/flow/blob/main/templates/styleguides/languages/bash.md)':1406 '/my-project/myapp:latest':1099,1111 '/project/image:tag':93 '/run/docs':1361 '/run/docs/configuring/services/cpu':1370 '/run/docs/configuring/services/gpu':1373 '/run/docs/configuring/task-timeout':1367 '/run/docs/mapping-custom-domains':1376 '/run/docs/release-notes':1364 '/src':1024 '/uv':1004 '/var/lib/apt/lists':1057 '0.0.0.0':1082 '1':72,128,133,160,248,366,411,475,513,645,702,1117,1125 '10':881,1129 '16':264 '2':84,378,427,519 '24':229 '256mi':138 '256mi-32gi':137 '3':94,388,445,554 '3.13':993,1034 '32':269 '32gi':139,258 '3600s':184 '4':106,260,262,395,454,591 '5':636 '512mi':1119 '60':225 '6000':285,1329 '8':256,267 '80':146,865,1121 '8080':1084,1086 '86400s':187 'access':631,824 'account':969,1135 'add':402,435,455 'add-iam-policy-bind':434 'alloc':191 'allow':392,598,966,1138 'allow-unauthent':597,965,1137 'alloydb/cloud':301,836 'alway':670,791,813 'api':602 'api.example.com':358 'app':423,622,1080 'app.example.com':357 'applic':47,421,661,776 'appus':1063,1065 'apt':1042,1046 'apt-get':1041,1045 'array':346 'artifact':497,540,1293 'auth':593,610,719,733 'authent':958 'author':447 'auto':215,368,857,1312 'auto-discov':367 'auto-provis':1311 'auto-scal':214,856 'automat':49 'autosc':278 'avoid':164 'awar':616,1299 'background':199 'base':55,277,484,588,609 'baselin':1379 'bash':242,309,327,350,1089,1403 'batch/scheduled':211 'best':1218,1255,1334 'bill':769 'bind':438 'blackwel':286,1330 'blast':808 'bookworm':996,1037 'boost':651,712,1132 'brand':414,419 'build':78,85,88,483,520,527,529,536,885,925,1090,1094,1263,1279,1282,1289 'builder':485,491,998,1068 'built':727 'built-in':726 'bytecod':666 'cach':1284 'cannot':855 'capac':781 'case':1417 'caus':691,784 'ceil':175 'central1':1115 'charg':60 'check':1344 'checkpoint':915 'ci':533 'cli':1143,1188 'cloud':2,10,18,32,36,370,384,526,679,723,744,750,800,853,1147,1155,1199,1278,1281,1306,1346 'cloud-run':1 'cmd':1077 'code':662,734 'cold':25,165,639,695,1209 'comma':343 'command':231,940,983,1088,1189,1317 'compil':665 'complet':221 'comput':976 'concurr':22,143,144,259,272,566,772,848,1120,1192,1214,1336 'configur':17,121,472,592,918,1175,1196,1202,1221,1320,1331 'connector':307,629,820,845,1241 'contain':7,342,543,743,811,877,900,1236 'container':46 'control':177 'copi':493,999,1008,1022,1066 'cor':348,355,362 'cost':178 'cost/performance':1217 'cover':1165 'cpu':125,126,190,193,255,263,268,564,650,674,711,933,1116,1131 'cpu-boost':649,710,1130 'cpu-throttl':192 'creat':412,420,1061 'create-hom':1060 'custom':721,732,1229 'data':406 'data-fil':405 'databas':755 'db':823 'debug':1247 'dedupl':394 'default':147,682,863,975 'defin':961 'deliv':917 'depend':488,659 'deploy':6,70,95,99,234,238,245,312,456,461,555,558,562,577,892,939,982,1087,1100,1106,1157,1187 'describ':377 'detail':288,1172,1420 'dev':1017,1031 'direct':296,815,833 'discov':369,379 'distroless':1267 'dockerfil':30,74,478,799,920,980,989,990,1257 'docs.cloud.google.com':1360,1363,1366,1369,1372,1375 'docs.cloud.google.com/run/docs':1359 'docs.cloud.google.com/run/docs/configuring/services/cpu':1368 'docs.cloud.google.com/run/docs/configuring/services/gpu':1371 'docs.cloud.google.com/run/docs/configuring/task-timeout':1365 'docs.cloud.google.com/run/docs/mapping-custom-domains':1374 'docs.cloud.google.com/run/docs/release-notes':1362 'document':1181 'domain':1230 'download':871 'driver':287 'duplic':1389 'e.g':344 'edg':1416 'edit':12 'egress':298,316,817,827 'elimin':731 'email':425,426,451 'enabl':464,648 'entrypoint':1075 'env':335,353,1071 'environ':1314 'ephemer':748 'escap':812 'exampl':978,1176,1224 'execut':1203 'exist':391,1145 'explicit':273,677,697,849,935 'expos':1085 'extens':1144 'face':621 'failur':1249 'fals':195 'fast':886 'faster':653,714 'featur':204 'file':407 'filestor':1351 'firestor':752 'flag':123 'focus':1410 'follow':1180 'frozen':1014,1028 'full':470 'fulli':40 'fuse':1348 'gb':882 'gcloud':15,87,97,109,232,235,243,310,374,399,415,432,528,560,1093,1104,1316 'gcp':1398 'gcr.io':92,1098,1110 'gcr.io/my-project/myapp:latest':1097,1109 'gcr.io/project/image:tag':91 'gcs':874 'gemini':1142 'general':1393 'generic':1384 'get':1043,1047 'ghcr.io':1002 'ghcr.io/astral-sh/uv:latest':1001 'gib':265,270 'git':549 'github.com':1396,1401,1405 'github.com/cofin/flow/blob/main/templates/styleguides/cloud/gcp_scripting.md)':1400 'github.com/cofin/flow/blob/main/templates/styleguides/general.md)':1395 'github.com/cofin/flow/blob/main/templates/styleguides/languages/bash.md)':1404 'give':832 'gke':380 'googl':9,31,625 'gpu':239,247,250,276,851,860,869,901,1158,1321,1339 'gpu-bas':275 'gpu-typ':249 'grant':428,446,460 'guardrail':669 'guid':1173 'guidelin':1215 'handl':210,517,694 'handler':153 'health':1343 'heavi':152,658 'high':783 'hold':904 'home':1062 'host':1081 'hour':230 'http':208 'iac':1223 'iam':436,608,962,1227 'iam-bas':607 'iap':408,416,429,465,471,613,717,729,963,1301,1303 'ident':431,615,1298 'identity-awar':614,1297 'imag':86,101,102,524,546,878,884,1108 'incom':57 'independ':890 'index':1170 'infer':291,1333 'ingress':1238 'init':1276 'initi':575 'instal':487,1020,1048,1052 'instanc':155,158,168,171,569,644,701,746,762,780,870,943,951,1124,1128 'integr':730,1419 'intern':604 'ip':304,382,839 'issu':1252 'job':20,189,203,206,237,1197,1201,1340 'json':345 'jwt':1308 'keep':883,1407 'key':119,331,360 'kill':693 'l4':241,254,1325 'language/framework':1385 'latenc':705,842,1250 'latency-sensit':704 'latest':118,334,584 'lazi':656 'lazy-load':655 'lb':381 'limit':675,678 'live':1355 'load':657,903 'lockout':459 'login':626 'low':788 'lower':148,841 'manag':41,107,1191,1244,1266 'map':1231 'match':140,686,774 'max':167,170,761,950,1127 'max-inst':169,760,949,1126 'may':684 'member':440,449 'memori':134,135,151,257,565,672,785,931,1118,1251 'memory-heavi':150 'merg':389 'middlewar':722 'min':154,157,643,700,942,1123 'min-inst':156,642,699,941,1122 'min/max':568 'minim':979 'minimum':261 'minut':226 'ml':290,1332 'model':872,880,888,902,908 'mount':326,1349 'multi':76,481,923,1235,1261,1287 'multi-contain':1234 'multi-stag':75,480,922,1260 'multi-target':1286 'myapp':1107 'myapp-sa@my-project.iam.gserviceaccount.com':1136 'myapp.main':1079 'n':54,127,145,159,172,181 'name':333,404 'need':624 'network':27,294,321,322,595,1162,1232 'never':738 'nfs':1350 'ngi':136 'no-dev':1015,1029 'no-install-project':1018 'no-install-recommend':1050 'no-traff':571 'non':81,506,795,928,1270 'non-root':80,505,794,927,1269 'note':1140 'nvidia':240,253,1324 'nvidia-l4':252 'oauth':413,418 'oauth-brand':417 'offici':1357 'oom':692,867 'optim':1211 'origin':349,356,363,393 'overhead':308,846 'overview':35 'packag':1265 'parallel':1206 'path':1072,1074 'pattern':292,1163,1258,1296 'per':779 'per-inst':778 'percentag':587 'percentage-bas':586 'perform':1207 'persist':757 'pid':512 'pipelin':71,534,1283 'platform':43 'polici':437 'port':1083 'practic':1219,1256,1335 'pre':664 'pre-compil':663 'pressur':786 'prevent':458,764,955 'preview':386 'principl':1394 'privat':303,318,633,822,829,838 'private-ranges-on':317,828 'pro':284,1328 'probe':895,1353,1356 'process':67 'product':162,293,647,707,947,1102,1161 'project':433,439,1021 'proper':515 'provid':1151 'provis':1313 'proxi':617,1300 'public':601 'purpos':207 'push':522,538,1092,1295 'pyproject.toml':1009 'python':668,986,992,1033 'quick':68 'radius':809 'rang':319,830 'readi':910 'recommend':124,266,1053 'reconcili':364 'reduc':806,1388 'refer':69,1169,1177,1183,1358 'references/cloudbuild.md':1280 'references/dockerfile.md':1259 'references/gpu.md':280,281,1323 'references/iap.md':467,468,736,737,1302 'references/jobs.md':1198 'references/networking.md':1233 'references/performance.md':1208 'references/services.md':1185 'references/terraform.md':1222 'references/troubleshooting.md':1246 'references/volumes.md':912,913,1345 'region':104,105,1112 'registri':541,544,1294 'request':58,66,209 'resourc':63,634,790,1195,1212 'rf':1056 'rm':1055 'role':443,452 'roles/iap.httpsresourceaccessor':453,462 'roles/run.invoker':444 'root':82,507,796,929,1271 'rout':299,834 'rtx':283,1327 'rule':1386 'run':3,11,16,19,33,37,45,98,110,219,233,236,244,311,371,375,502,561,680,724,745,801,854,1011,1025,1040,1058,1105,1148,1156,1200,1307 'runaway':765 'runner':486,500,1039 'runtim':496 'sa':977 'scale':21,50,213,216,766,858,957,1193 'script':1399 'secret':295,325,330,332,398,400,403,1243 'security/reliability':1254 'see':279,466,735,911 'sensit':706 'separ':337 'serverless':29,42 'servic':96,100,111,115,120,186,201,205,246,313,372,376,430,557,605,708,948,968,988,1134,1184,1186,1226 'service-account':1133 'service-project@gcp-sa-iap.iam.gserviceaccount.com':442 'service.yaml':13 'serviceaccount':441 'set':122,173,271,329,352,563,611,641,671,698,759,847,936,945,953,1103,1239 'set-env-var':351 'set-secret':328 'setup':409,1273,1304 'sha':550 'share':1377,1381 'shell':385 'shift':579 'sidecar':1237 'signal':516 'skill':34,1150,1392,1409 'skill-cloud-run' 'slim':995,1036 'slim-bookworm':994,1035 'slow':898 'slow-start':897 'source-cofin' 'specif':1414 'specifi':971 'spike':770 'split':24,589 'sql':302,837 'src':1023 'stage':77,482,492,501,924,1262 'start':26,131,166,640,696,899,1210 'startup':654,715,894,1248,1352 'state':740,758 'step':474,518,553,590,635 'storag':751,1347 'store':739 'strategi':959,1291 'styleguid':1378,1382 'submit':89,530,1095 'subnet':323,324 'summari':410 'support':424,802,1322 'sync':1013,1027 'system':1277 'tag':90,545,1096,1290 'target':1288 'task':200,212,1205 'terraform':1220,1319 'test':576 'throttl':194 'timeout':179,180,222 'tini':510,1054,1076,1275 'titl':422 'to-latest':116,582 'tool':1168,1413 'tool-specif':1412 'topic-agent-skills' 'topic-ai-agents' 'topic-beads' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-opencode' 'topic-plugin' 'topic-slash-commands' 'topic-spec-driven-development' 'traceabl':552 'traffic':23,108,114,218,573,580,905,1190 'trick':338 'troubleshoot':1245 'tune':637,1213,1337 'type':251 'unauthent':599,967,1139 'unbound':956 'unexpect':768 'uniqu':1152 'updat':113,396,889,1044 'update-traff':112 'url':103,373,387 'us':1114 'us-central1':1113 'use':4,14,64,196,339,479,509,525,570,596,606,627,681,709,716,749,771,792,814,893,921,973,1380 'user':83,448,450,508,620,797,930,1064,1272,1310 'user-fac':619 'useradd':1059 'util':861 'uv':1012,1026,1264 'uv.lock':1010 'uvicorn':1078 'valid':914,1309 'valu':341,361,1153 'var':336,354 'variabl':1315 'variant':1268 'vcpus':130 'verifi':919 'version':401 'volum':1341 'vpc':297,306,315,628,816,819,826,1240 'vpc-egress':314,825 'vs':202 'warm':1285 'wast':789 'web':987 'websocket':198 'without':305,676 'workdir':1006 'workflow':365,473,1415 'workload':142,688,852,1159 'write':73,476 'y':1049 'zero':52","prices":[{"id":"8d6012ef-d9d4-4b0e-993b-1a3010fddae1","listingId":"c5831ff6-8300-4573-9621-84a4e7324b69","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cofin","category":"flow","install_from":"skills.sh"},"createdAt":"2026-04-23T13:03:58.270Z"}],"sources":[{"listingId":"c5831ff6-8300-4573-9621-84a4e7324b69","source":"github","sourceId":"cofin/flow/cloud-run","sourceUrl":"https://github.com/cofin/flow/tree/main/skills/cloud-run","isPrimary":false,"firstSeenAt":"2026-04-23T13:03:58.270Z","lastSeenAt":"2026-05-18T19:07:35.709Z"}],"details":{"listingId":"c5831ff6-8300-4573-9621-84a4e7324b69","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cofin","slug":"cloud-run","github":{"repo":"cofin/flow","stars":11,"topics":["agent-skills","ai-agents","beads","claude-code","codex","context-driven-development","cursor","developer-tools","gemini-cli","opencode","plugin","slash-commands","spec-driven-development","subagents","tdd","workflow"],"license":"apache-2.0","html_url":"https://github.com/cofin/flow","pushed_at":"2026-04-27T19:07:26Z","description":"Context-Driven Development toolkit for AI agents — spec-first planning, TDD workflow, and Beads integration.","skill_md_sha":"e1dab2c8444c824ecf3f6c6c2842d13613ac625a","skill_md_path":"skills/cloud-run/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cofin/flow/tree/main/skills/cloud-run"},"layout":"multi","source":"github","category":"flow","frontmatter":{"name":"cloud-run","description":"Use when deploying containers to Google Cloud Run, editing service.yaml, using gcloud run, configuring Cloud Run Jobs, scaling, concurrency, traffic splitting, cold starts, networking, or serverless Dockerfiles."},"skills_sh_url":"https://skills.sh/cofin/flow/cloud-run"},"updatedAt":"2026-05-18T19:07:35.709Z"}}