{"id":"c5831ff6-8300-4573-9621-84a4e7324b69","shortId":"aVSd3H","kind":"skill","title":"cloud-run","tagline":"Auto-activate for Cloud Run service.yaml, gcloud run commands. Google Cloud Run serverless platform: Dockerfile, containerized services, Cloud Run Jobs, cold starts, traffic splitting. Produces Cloud Run service configurations, Dockerfiles, and deployment workflows for containeri","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-04-24T01:03:25.589Z","embedding":null,"createdAt":"2026-04-23T13:03:58.270Z","updatedAt":"2026-04-24T01:03:25.589Z","lastSeenAt":"2026-04-24T01:03:25.589Z","tsv":"'-8':138 '/app':1016,1078,1079 '/app/.venv/bin':1082 '/astral-sh/uv:latest':1012 '/bin':1014 '/cofin/flow/blob/main/templates/styleguides/cloud/gcp_scripting.md)':1411 '/cofin/flow/blob/main/templates/styleguides/general.md)':1406 '/cofin/flow/blob/main/templates/styleguides/languages/bash.md)':1415 '/my-project/myapp:latest':1108,1120 '/project/image:tag':102 '/run/docs':1370 '/run/docs/configuring/services/cpu':1379 '/run/docs/configuring/services/gpu':1382 '/run/docs/configuring/task-timeout':1376 '/run/docs/mapping-custom-domains':1385 '/run/docs/release-notes':1373 '/src':1033 '/uv':1013 '/var/lib/apt/lists':1066 '0.0.0.0':1091 '1':81,137,142,169,257,375,420,484,522,654,711,1126,1134 '10':890,1138 '16':273 '2':93,387,436,528 '24':238 '256mi':147 '256mi-32gi':146 '3':103,397,454,563 '3.13':1002,1043 '32':278 '32gi':148,267 '3600s':193 '4':115,269,271,404,463,600 '5':645 '512mi':1128 '60':234 '6000':294,1338 '8':265,276 '80':155,874,1130 '8080':1093,1095 '86400s':196 'access':640,833 'account':978,1144 'activ':6 'add':411,444,464 'add-iam-policy-bind':443 'alloc':200 'allow':401,607,975,1147 'allow-unauthent':606,974,1146 'alloydb/cloud':310,845 'alway':679,800,822 'api':611 'api.example.com':367 'app':432,631,1089 'app.example.com':366 'applic':56,430,670,785 'appus':1072,1074 'apt':1051,1055 'apt-get':1050,1054 'array':355 'artifact':506,549,1302 'auth':602,619,728,742 'authent':967 'author':456 'auto':5,224,377,866,1321 'auto-activ':4 'auto-discov':376 'auto-provis':1320 'auto-scal':223,865 'automat':58 'autosc':287 'avoid':173 'awar':625,1308 'background':208 'base':64,286,493,597,618 'baselin':1388 'bash':251,318,336,359,1098,1412 'batch/scheduled':220 'best':1227,1264,1343 'bill':778 'bind':447 'blackwel':295,1339 'blast':817 'bookworm':1005,1046 'boost':660,721,1141 'brand':423,428 'build':87,94,97,492,529,536,538,545,894,934,1099,1103,1272,1288,1291,1298 'builder':494,500,1007,1077 'built':736 'built-in':735 'bytecod':675 'cach':1293 'cannot':864 'capac':790 'case':1426 'caus':700,793 'ceil':184 'central1':1124 'charg':69 'check':1353 'checkpoint':924 'ci':542 'cli':1152,1197 'cloud':2,8,15,22,30,41,45,379,393,535,688,732,753,759,809,862,1156,1164,1208,1287,1290,1315,1355 'cloud-run':1 'cmd':1086 'code':671,743 'cold':25,174,648,704,1218 'comma':352 'command':13,240,949,992,1097,1198,1326 'compil':674 'complet':230 'comput':985 'concurr':152,153,268,281,575,781,857,1129,1201,1223,1345 'configur':33,130,481,601,927,1184,1205,1211,1230,1329,1340 'connector':316,638,829,854,1250 'contain':351,552,752,820,886,909,1245 'container':20,55 'containeri':39 'control':186 'copi':502,1008,1017,1031,1075 'cor':357,364,371 'cost':187 'cost/performance':1226 'cover':1174 'cpu':134,135,199,202,264,272,277,573,659,683,720,942,1125,1140 'cpu-boost':658,719,1139 'cpu-throttl':201 'creat':421,429,1070 'create-hom':1069 'custom':730,741,1238 'data':415 'data-fil':414 'databas':764 'db':832 'debug':1256 'dedupl':403 'default':156,691,872,984 'defin':970 'deliv':926 'depend':497,668 'deploy':36,79,104,108,243,247,254,321,465,470,564,567,571,586,901,948,991,1096,1109,1115,1166,1196 'describ':386 'detail':297,1181,1429 'dev':1026,1040 'direct':305,824,842 'discov':378,388 'distroless':1276 'dockerfil':19,34,83,487,808,929,989,998,999,1266 'docs.cloud.google.com':1369,1372,1375,1378,1381,1384 'docs.cloud.google.com/run/docs':1368 'docs.cloud.google.com/run/docs/configuring/services/cpu':1377 'docs.cloud.google.com/run/docs/configuring/services/gpu':1380 'docs.cloud.google.com/run/docs/configuring/task-timeout':1374 'docs.cloud.google.com/run/docs/mapping-custom-domains':1383 'docs.cloud.google.com/run/docs/release-notes':1371 'document':1190 'domain':1239 'download':880 'driver':296 'duplic':1398 'e.g':353 'edg':1425 'egress':307,325,826,836 'elimin':740 'email':434,435,460 'enabl':473,657 'entrypoint':1084 'env':344,362,1080 'environ':1323 'ephemer':757 'escap':821 'exampl':987,1185,1233 'execut':1212 'exist':400,1154 'explicit':282,686,706,858,944 'expos':1094 'extens':1153 'face':630 'failur':1258 'fals':204 'fast':895 'faster':662,723 'featur':213 'file':416 'filestor':1360 'firestor':761 'flag':132 'focus':1419 'follow':1189 'frozen':1023,1037 'full':479 'fulli':49 'fuse':1357 'gb':891 'gcloud':11,96,106,118,241,244,252,319,383,408,424,441,537,569,1102,1113,1325 'gcp':1407 'gcr.io':101,1107,1119 'gcr.io/my-project/myapp:latest':1106,1118 'gcr.io/project/image:tag':100 'gcs':883 'gemini':1151 'general':1402 'generic':1393 'get':1052,1056 'ghcr.io':1011 'ghcr.io/astral-sh/uv:latest':1010 'gib':274,279 'git':558 'github.com':1405,1410,1414 'github.com/cofin/flow/blob/main/templates/styleguides/cloud/gcp_scripting.md)':1409 'github.com/cofin/flow/blob/main/templates/styleguides/general.md)':1404 'github.com/cofin/flow/blob/main/templates/styleguides/languages/bash.md)':1413 'give':841 'gke':389 'googl':14,40,634 'gpu':248,256,259,285,860,869,878,910,1167,1330,1348 'gpu-bas':284 'gpu-typ':258 'grant':437,455,469 'guardrail':678 'guid':1182 'guidelin':1224 'handl':219,526,703 'handler':162 'health':1352 'heavi':161,667 'high':792 'hold':913 'home':1071 'host':1090 'hour':239 'http':217 'iac':1232 'iam':445,617,971,1236 'iam-bas':616 'iap':417,425,438,474,480,622,726,738,972,1310,1312 'ident':440,624,1307 'identity-awar':623,1306 'imag':95,110,111,533,555,887,893,1117 'incom':66 'independ':899 'index':1179 'infer':300,1342 'ingress':1247 'init':1285 'initi':584 'instal':496,1029,1057,1061 'instanc':164,167,177,180,578,653,710,755,771,789,879,952,960,1133,1137 'integr':739,1428 'intern':613 'ip':313,391,848 'issu':1261 'job':24,198,212,215,246,1206,1210,1349 'json':354 'jwt':1317 'keep':892,1416 'key':128,340,369 'kill':702 'l4':250,263,1334 'language/framework':1394 'latenc':714,851,1259 'latency-sensit':713 'latest':127,343,593 'lazi':665 'lazy-load':664 'lb':390 'limit':684,687 'live':1364 'load':666,912 'lockout':468 'login':635 'low':797 'lower':157,850 'manag':50,116,1200,1253,1275 'map':1240 'match':149,695,783 'max':176,179,770,959,1136 'max-inst':178,769,958,1135 'may':693 'member':449,458 'memori':143,144,160,266,574,681,794,940,1127,1260 'memory-heavi':159 'merg':398 'middlewar':731 'min':163,166,652,709,951,1132 'min-inst':165,651,708,950,1131 'min/max':577 'minim':988 'minimum':270 'minut':235 'ml':299,1341 'model':881,889,897,911,917 'mount':335,1358 'multi':85,490,932,1244,1270,1296 'multi-contain':1243 'multi-stag':84,489,931,1269 'multi-target':1295 'myapp':1116 'myapp-sa@my-project.iam.gserviceaccount.com':1145 'myapp.main':1088 'n':63,136,154,168,181,190 'name':342,413 'need':633 'network':303,330,331,604,1171,1241 'never':747 'nfs':1359 'ngi':145 'no-dev':1024,1038 'no-install-project':1027 'no-install-recommend':1059 'no-traff':580 'non':90,515,804,937,1279 'non-root':89,514,803,936,1278 'note':1149 'nvidia':249,262,1333 'nvidia-l4':261 'oauth':422,427 'oauth-brand':426 'offici':1366 'oom':701,876 'optim':1220 'origin':358,365,372,402 'overhead':317,855 'overview':44 'packag':1274 'parallel':1215 'path':1081,1083 'pattern':301,1172,1267,1305 'per':788 'per-inst':787 'percentag':596 'percentage-bas':595 'perform':1216 'persist':766 'pid':521 'pipelin':80,543,1292 'platform':18,52 'polici':446 'port':1092 'practic':1228,1265,1344 'pre':673 'pre-compil':672 'pressur':795 'prevent':467,773,964 'preview':395 'principl':1403 'privat':312,327,642,831,838,847 'private-ranges-on':326,837 'pro':293,1337 'probe':904,1362,1365 'process':76 'produc':29 'product':171,302,656,716,956,1111,1170 'project':442,448,1030 'proper':524 'provid':1160 'provis':1322 'proxi':626,1309 'public':610 'purpos':216 'push':531,547,1101,1304 'pyproject.toml':1018 'python':677,995,1001,1042 'quick':77 'radius':818 'rang':328,839 'readi':919 'recommend':133,275,1062 'reconcili':373 'reduc':815,1397 'refer':78,1178,1186,1192,1367 'references/cloudbuild.md':1289 'references/dockerfile.md':1268 'references/gpu.md':289,290,1332 'references/iap.md':476,477,745,746,1311 'references/jobs.md':1207 'references/networking.md':1242 'references/performance.md':1217 'references/services.md':1194 'references/terraform.md':1231 'references/troubleshooting.md':1255 'references/volumes.md':921,922,1354 'region':113,114,1121 'registri':550,553,1303 'request':67,75,218 'resourc':72,643,799,1204,1221 'rf':1065 'rm':1064 'role':452,461 'roles/iap.httpsresourceaccessor':462,471 'roles/run.invoker':453 'root':91,516,805,938,1280 'rout':308,843 'rtx':292,1336 'rule':1395 'run':3,9,12,16,23,31,42,46,54,107,119,228,242,245,253,320,380,384,511,570,689,733,754,810,863,1020,1034,1049,1067,1114,1157,1165,1209,1316 'runaway':774 'runner':495,509,1048 'runtim':505 'sa':986 'scale':59,222,225,775,867,966,1202 'script':1408 'secret':304,334,339,341,407,409,412,1252 'security/reliability':1263 'see':288,475,744,920 'sensit':715 'separ':346 'serverless':17,51 'servic':21,32,105,109,120,124,129,195,210,214,255,322,381,385,439,566,614,717,957,977,997,1143,1193,1195,1235 'service-account':1142 'service-project@gcp-sa-iap.iam.gserviceaccount.com':451 'service.yaml':10 'serviceaccount':450 'set':131,182,280,338,361,572,620,650,680,707,768,856,945,954,962,1112,1248 'set-env-var':360 'set-secret':337 'setup':418,1282,1313 'sha':559 'share':1386,1390 'shell':394 'shift':588 'sidecar':1246 'signal':525 'skill':43,1159,1401,1418 'skill-cloud-run' 'slim':1004,1045 'slim-bookworm':1003,1044 'slow':907 'slow-start':906 'source-cofin' 'specif':1423 'specifi':980 'spike':779 'split':28,598 'sql':311,846 'src':1032 'stage':86,491,501,510,933,1271 'start':26,140,175,649,705,908,1219 'startup':663,724,903,1257,1361 'state':749,767 'step':483,527,562,599,644 'storag':760,1356 'store':748 'strategi':968,1300 'styleguid':1387,1391 'submit':98,539,1104 'subnet':332,333 'summari':419 'support':433,811,1331 'sync':1022,1036 'system':1286 'tag':99,554,1105,1299 'target':1297 'task':209,221,1214 'terraform':1229,1328 'test':585 'throttl':203 'timeout':188,189,231 'tini':519,1063,1085,1284 'titl':431 'to-latest':125,591 'tool':1177,1422 'tool-specif':1421 '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':561 'traffic':27,117,123,227,582,589,914,1199 'trick':347 'troubleshoot':1254 'tune':646,1222,1346 'type':260 'unauthent':608,976,1148 'unbound':965 'unexpect':777 'uniqu':1161 'updat':122,405,898,1053 'update-traff':121 'url':112,382,396 'us':1123 'us-central1':1122 'use':73,205,348,488,518,534,579,605,615,636,690,718,725,758,780,801,823,902,930,982,1389 'user':92,457,459,517,629,806,939,1073,1281,1319 'user-fac':628 'useradd':1068 'util':870 'uv':1021,1035,1273 'uv.lock':1019 'uvicorn':1087 'valid':923,1318 'valu':350,370,1162 'var':345,363 'variabl':1324 'variant':1277 'vcpus':139 'verifi':928 'version':410 'volum':1350 'vpc':306,315,324,637,825,828,835,1249 'vpc-egress':323,834 'vs':211 'warm':1294 'wast':798 'web':996 'websocket':207 'without':314,685 'workdir':1015 'workflow':37,374,482,1424 'workload':151,697,861,1168 'write':82,485 'y':1058 'zero':61","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-04-24T01:03:25.589Z"}],"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-19T23:22:27Z","description":"Context-Driven Development toolkit for AI agents — spec-first planning, TDD workflow, and Beads integration.","skill_md_sha":"a8e12588c3e816a9d874a78b623a7934bb6c0f60","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":"Auto-activate for Cloud Run service.yaml, gcloud run commands. Google Cloud Run serverless platform: Dockerfile, containerized services, Cloud Run Jobs, cold starts, traffic splitting. Produces Cloud Run service configurations, Dockerfiles, and deployment workflows for containerized serverless apps on GCP. Use when: deploying containers to Cloud Run, writing Dockerfiles for serverless, or tuning scaling/concurrency. Not for GKE (see gke), Cloud Functions, or non-containerized deployments."},"skills_sh_url":"https://skills.sh/cofin/flow/cloud-run"},"updatedAt":"2026-04-24T01:03:25.589Z"}}