Loading...
Loading...
Deploy containerised applications to Google Cloud Run from source using gcloud CLI. Use when the user asks to "deploy to GCP", "deploy to Cloud Run", "ship to Google Cloud", "gcloud run deploy", or needs to set up, redeploy, configure env vars/secrets, view logs, or troubleshoot a Cloud Run service.
npx skill4agent add fwfutures/skills gcp-deployPORT# 1. Auth (skip if already logged in)
gcloud auth login
gcloud config set project PROJECT_ID
# 2. Enable APIs (first time only)
gcloud services enable run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com
# 3. Deploy
gcloud run deploy SERVICE_NAME \
--source . \
--region australia-southeast1 \
--allow-unauthenticatedscripts/deploy.shchmod +x deploy.sh
./deploy.sh my-serviceGCP_REGIONaustralia-southeast1GCP_PROJECT| Flag | Purpose | Example |
|---|---|---|
| Deployment region | |
| Public access | |
| Container port (if not 8080) | |
| Env vars | |
| Secret Manager secrets | |
| Memory | |
| CPU | |
| Min instances (0 = scale to zero) | |
| Max instances | |
| Request timeout (max 3600) | |
gcloud run deploy SERVICE --source . --region REGION --allow-unauthenticated \
--set-env-vars "DATABASE_URL=postgres://...,API_KEY=abc123"# Create secret
echo -n "secret-value" | gcloud secrets create MY_SECRET --data-file=-
# Grant access to default compute SA
gcloud secrets add-iam-policy-binding MY_SECRET \
--member="serviceAccount:$(gcloud iam service-accounts list --format='value(email)' --filter='displayName:Compute Engine default')" \
--role="roles/secretmanager.secretAccessor"
# Deploy with secret
gcloud run deploy SERVICE --source . --region REGION --allow-unauthenticated \
--set-secrets "MY_SECRET=MY_SECRET:latest"# Stream logs
gcloud run services logs tail SERVICE --region REGION
# List services
gcloud run services list --region REGION
# Get service URL
gcloud run services describe SERVICE --region REGION --format "value(status.url)"
# Delete service
gcloud run services delete SERVICE --region REGIONgcloud auth activate-service-account --key-file=key.json
gcloud config set project PROJECT_ID| Issue | Fix |
|---|---|
| Build fails | Check Dockerfile locally: |
| 403 on deploy | Need |
| App crashes on start | Check logs: |
| Port mismatch | Set |
| Cold start slow | Set |
| Timeout on long requests | Increase with |