透過 Cloud Run 部署網站 - Task2 | GSP659

 


簡介

在本文實作練習中,將會透過 Deploy Your Website on Cloud Run | Google Cloud Skills Boost 主題,學習如何在 GCP 雲端環境中,如何透過 Cloud Run (Serverless) 技術,部署和管理組織和企業的網站。
上一篇文章中,已經順利 Git Clone 來源 Repository,並安裝 NodeJS  Dependencies 和啟動 Web 網頁伺服器,確保網站的一切已經運作正常。在本文中,將會使用 Cloud Build 來建立 Docker 容器。下圖為本文實作環境的 Cloud Run 運作架構示意圖:






Task 2、透過 Cloud Build 建立 Docker 容器

建立目標 Docker 儲存庫

確認 NodeJS 網頁伺服器正常運作後,便可以準備透過 Cloud Build 機制,將 NodeJS 網頁伺服器容器化。一般來說,將應用程式容器化有兩個步驟,分別是建立 Docker 容器後,推送到 Registry 儲存後,以便 GKE 容器平台可以提取 Docker 容器映像檔。

但是,在 Cloud Run 運作架構中,可以讓這樣的步驟更精簡。簡單來說,透過 Cloud Build 建立 Docker 容器時,它會壓縮目錄中的檔案並移動至 Cloud Storage 儲存資源,並且在建置過程將中,會將從 Cloud Storage 儲存資源中取得所有檔案,並使用同一目錄的 Dockerfile 來執行 Docker 建置流程,最後透過單一指令將 Docker 映像檔,推送到 Artifact Registry 當中。

首先,在 Google Cloud Console 管理介面中,依序點選「CI/CD > Artifact Registry > Repositories」項目,在 Artifact Registry 頁面中,點選「Create Repository」項目,準備建立測試用的 Repository。


在 Create Repository 頁面中,採用下列相關資訊建立新的測試用途 Repository:
  • Name: monolith-demo
  • Format: Docker
  • Mode: Standard
  • Location type: Region (us-central1 (lowa)

採用上述資訊後,按下 Create 鈕順利建立新的測試用途 Repository。




組態設定身份驗證機制

在執行推送或拉取 Docker 映像檔之前,請先為 Docker 組態設定為使用 Artifact Registry 時進行身份驗證。在本文實作環境中,將會針對 us-central1 區域中 Docker 儲存庫,進行身份驗證機制,請在 Cloud Shell 中執行「gcloud auth configure-docker us-central1-docker.pkg.dev」指令。


上述指令執行後,將會更新 Docker 組態設定,以便稍後可以順利連接 Artifact Registry,並且推送和拉取 Docker 映像檔。



部署 Docker 容器

在執行部署作業之前,必須先啟動 Cloud Build、ArtifactRegistry、Cloud Run API 等服務,請執行「gcloud services enable artifactregistry.googleapis.com cloudbuild.googleapis.com run.googleapis.com」指令。

順利啟用相關服務後,執行「gcloud builds submit --tag us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0」指令建立 Docker 容器映像檔。


倘若,管理人員希望查看歷史記錄或是在建立 Docker 容器映像檔的流程時,可以點選「Cloud Build > History」,便可以看到建置的 Docker 容器映像檔的清單。


點選 Build ID 後,便可以查看建置過程中的詳細資訊。