Google Cloud Platform 自動 build + deploy 筆記
latest #7
中央西門風痕影
3 weeks ago @Edit 3 weeks ago
業主在「Cloud Run」這頁,「編輯持續部署功能」(Edit Continuous Deployment)的「觸發條件」(Triggers)裡,指定了 GitHub repo,並設定成用 Buildpacks 自動 build
業主原本說這環境會自動 deploy;但我發現每次在 repo 裡上 tag 之後,build 雖然有自動執行,線上版本卻依然是舊的,且「服務」(service)本身也不會自動 deploy 新版本。就算手動 deploy,實際發出 request,得到的也是舊版的 response
問了業主後,他沒有頭緒,開權限要我自己研究
中央西門風痕影
3 weeks ago @Edit 3 weeks ago
研究後發現:雖然自動 build 的「映像檔名稱」(Image name)用了 $COMMIT_SHA
結尾,但「服務」這邊使用的映像檔其實都是同一個,並沒有變過(也不是任何一個 commit 的 hash)
雖然我沒權限看有哪些映像檔,但我可以編輯「服務」的「YAML」設定,把裡頭使用的映像檔名稱改掉
把結尾改成指定版本的 commit hash 後,再 deploy,再對「服務」發 request,出現的就是新版本的 response 了
但這樣變成要每次都手動調整,應該要可以自動才對的
最後研究出來的結果:只靠 GCP 的「觸發條件」其實並沒有辦法做到自動 deploy,只能自動 build
如果要自動 deploy,需要在 git repo 內提供 cloudbuild.yaml
或 Dockerfile
中央西門風痕影
3 weeks ago @Edit 3 weeks ago
-
options.logging
我一開始沒寫,但 deploy 會出錯
- 不做
push
的話,deploy 那邊會找不到前面產生的映像檔
- 不太確定
images
這個設定是否能省略
- 有些現成的變數可以用,例如「映像檔名稱」我就用到了
$PROJECT_ID
、
$REPO_FULL_NAME
與
$COMMIT_SHA
:
Substituting variable values back to top