Auto deploy khi push code lên GitHub
Để tự động hóa quá trình build
và deploy
thì mình dùng đến dịch vụ google cloud build
, trình tự sẽ như thế này, kết nối GitHub repository
với cloud build
, tạo một trigger
đến một event từ github
ví dụ như là khi push to a branch
, push new tag
Ví dụ như trong hình mình setup một trigger
cứ mỗi khi mình push
code lên branch master
thì cloud build
sẽ tiến hành làm những công việc mình đã định nghĩa trong file cloudbuild.yaml
Sau khi tạo xong trigger
Nội dung file cloudbuild.yaml
trong gitHub repository
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'asia.gcr.io/tough-racer-272817/blog:$SHORT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'asia.gcr.io/tough-racer-272817/blog:$SHORT_SHA']
- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'asia.gcr.io/tough-racer-272817/blog:$SHORT_SHA', 'asia.gcr.io/tough-racer-272817/blog:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'asia.gcr.io/tough-racer-272817/blog:latest']
- name: 'gcr.io/cloud-builders/gcloud'
args:
- beta
- run
- deploy
- --region=asia-east1
- --image=asia.gcr.io/tough-racer-272817/blog:latest
- --cpu=1
- --memory=128Mi
- --max-instances=1
- --platform=managed
- --port=80
- --concurrency=100
- --allow-unauthenticated
- blog
images:
- 'asia.gcr.io/tough-racer-272817/blog:latest'
Trình tự các bước mà cloud run
sẽ làm
- Build
image
và đánhtag
cho nó. - Đẩy
image
đã build lêncontainer registry
- Đánh thêm tag
latest
nữa choimage
- Đẩy
image
với taglatest
lêncontainer registry
- Chạy lệnh để
deploy
lêncloud run
vớiimage
có taglatest
Nhưng trước tiên, bạn phải setup kết nối gitHub repository
và cấp quyền cho cloud build
với thêm hai role Cloud Run Admin
vàCloud Run Service Agent
là trong cài đăt IAM
Và bây giờ mọi thứ đã có thể diễn ra tự động rồi, mình sẽ commit code và push lên branch master, và đây là kết quả