forked from mohdTahaRafi/ResQLink
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
70 lines (61 loc) · 2.11 KB
/
Copy pathdeploy.sh
File metadata and controls
70 lines (61 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
set -e
PROJECT_ID="resqlink-58742"
REGION="asia-south1"
echo "=== RESQLINK Cloud Run Deployment ==="
echo "Project: $PROJECT_ID"
echo "Region: $REGION"
echo ""
# Enable required APIs
echo "[1/6] Enabling APIs..."
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
--project=$PROJECT_ID
# Create Artifact Registry repo (if not exists)
echo "[2/6] Creating Artifact Registry..."
gcloud artifacts repositories create resqlink-docker \
--repository-format=docker \
--location=$REGION \
--project=$PROJECT_ID 2>/dev/null || echo " (already exists)"
# Build & deploy API
echo "[3/6] Building API Docker image via Cloud Build..."
gcloud builds submit \
--tag ${REGION}-docker.pkg.dev/${PROJECT_ID}/resqlink-docker/resqlink-api:latest \
--dockerfile=Dockerfile.api \
--project=$PROJECT_ID
echo "[4/6] Deploying API to Cloud Run..."
gcloud run deploy resqlink-api \
--image ${REGION}-docker.pkg.dev/${PROJECT_ID}/resqlink-docker/resqlink-api:latest \
--platform managed \
--region $REGION \
--allow-unauthenticated \
--set-env-vars GCP_PROJECT_ID=$PROJECT_ID,GCP_LOCATION=$REGION \
--memory 512Mi \
--min-instances 0 \
--max-instances 3 \
--project=$PROJECT_ID
# Build & deploy Worker
echo "[5/6] Building Worker Docker image via Cloud Build..."
gcloud builds submit \
--tag ${REGION}-docker.pkg.dev/${PROJECT_ID}/resqlink-docker/resqlink-worker:latest \
--dockerfile=Dockerfile.worker \
--project=$PROJECT_ID
echo "[6/6] Deploying Worker to Cloud Run..."
gcloud run deploy resqlink-worker \
--image ${REGION}-docker.pkg.dev/${PROJECT_ID}/resqlink-docker/resqlink-worker:latest \
--platform managed \
--region $REGION \
--no-allow-unauthenticated \
--set-env-vars GCP_PROJECT_ID=$PROJECT_ID,GCP_LOCATION=$REGION \
--memory 1Gi \
--min-instances 0 \
--max-instances 3 \
--project=$PROJECT_ID
echo ""
echo "=== DEPLOYMENT COMPLETE ==="
API_URL=$(gcloud run services describe resqlink-api --region $REGION --project=$PROJECT_ID --format='value(status.url)')
echo "API URL: $API_URL"
echo ""
echo "Test with: curl $API_URL/health"