-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcloudbuild_cloudrun.yaml
84 lines (74 loc) · 2.59 KB
/
cloudbuild_cloudrun.yaml
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
substitutions:
_IMAGE_NAME: your-image-name
_SERVICE_NAME: your-service-name
_REGION: your-region
_GCS_BUCKET: your-gcs-bucket
_SERVICE_ACCOUNT: [email protected]
_DISCORD_URL: https://webhook-discord-url-to-send-to-discord
steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
secretEnv: ["OPENAI_API_KEY", "SUPABASE_URL", "SUPABASE_KEY", "DB_CONNECTION_STRING"]
args:
- '-c'
- |
cat <<EOF >Dockerfile_cloudrun
FROM gcr.io/$PROJECT_ID/prebuild/${_IMAGE_NAME}
COPY . .
EXPOSE 8080
ENV SUPABASE_URL=$$SUPABASE_URL
ENV SUPABASE_KEY=$$SUPABASE_KEY
ENV OPENAI_API_KEY=$$OPENAI_API_KEY
ENV GCS_BUCKET=${_GCS_BUCKET}
ENV DISCORD_URL=${_DISCORD_URL}
ENV DB_CONNECTION_STRING=$$DB_CONNECTION_STRING
CMD ["python", "webapp/app.py"]
EOF
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/${_IMAGE_NAME}', '-f', 'Dockerfile_cloudrun', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/${_IMAGE_NAME}']
# Deploy the image to Cloud Run
- name: "gcr.io/cloud-builders/gcloud"
id: deploy cloud run
entrypoint: bash
args:
- "-c"
- |
gcloud run deploy ${_SERVICE_NAME} --image gcr.io/$PROJECT_ID/${_IMAGE_NAME} \
--region ${_REGION} \
--platform managed \
--allow-unauthenticated \
--memory 2Gi \
--cpu 1 \
--max-instances 2 \
--service-account ${_SERVICE_ACCOUNT} \
--tag openai
# Get service URL
- name: "gcr.io/cloud-builders/gcloud"
id: get service url
entrypoint: bash
args:
- "-c"
- |
echo $(gcloud run services describe ${_SERVICE_NAME} --region ${_REGION} --format 'value(status.url)') \
> service_url.txt
# Update the service with SERVICE_URL environment variable
- name: "gcr.io/cloud-builders/gcloud"
id: update service
entrypoint: bash
args:
- "-c"
- |
gcloud run services update ${_SERVICE_NAME} --region ${_REGION} \
--update-env-vars=SERVICE_URL=$(cat service_url.txt)
availableSecrets:
secretManager:
- versionName: projects/$PROJECT_ID/secrets/OPENAI_API_KEY/versions/latest
env: OPENAI_API_KEY
- versionName: projects/$PROJECT_ID/secrets/SUPABASE_URL/versions/latest
env: SUPABASE_URL
- versionName: projects/$PROJECT_ID/secrets/SUPABASE_KEY/versions/latest
env: SUPABASE_KEY
- versionName: projects/$PROJECT_ID/secrets/DB_CONNECTION_STRING/versions/latest
env: DB_CONNECTION_STRING