正在加载…
未找到任何结果。

在 Google Cloud 控制台中运用您的技能

Architecting with Google Kubernetes Engine: Foundations - 繁體中文

访问 700 多个实验和课程

使用 Cloud Build

实验 1 小时 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

總覽

在這個研究室中,您將使用 Cloud Build 從現成的程式碼和 Dockerfile 建立 Docker 容器映像檔,然後將容器上傳至 Artifact Registry。

目標

在本研究室中瞭解如何執行下列工作:

  • 使用 Cloud Build 建構及推送容器
  • 使用 Artifact Registry 儲存及部署容器

設定研究室

存取研究室

每個實驗室都會提供新的 Google Cloud 專案和一組資源,讓您在時限內免費使用。

  1. 按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。

完成初始登入步驟後,就會看到專案資訊主頁。

啟動 Google Cloud Shell

Google Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。

Google Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 在 Cloud 控制台的右上方找到工具列,然後按一下「開啟 Cloud Shell」按鈕。

  2. 按一下「繼續」

佈建並連線至環境的作業需要一些時間才能完成。連線建立完成即代表已通過驗證,而且專案已設為您的「PROJECT_ID」。示例如下:

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。

  • 您可以使用下列指令來列出使用中的帳戶:
gcloud auth list

輸出內容:

Credentialed accounts: - @.com (active)

輸出內容示例:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project =

輸出內容示例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注意事項:如需 gcloud 的完整說明,請參閱 gcloud CLI 總覽指南

工作 1:確認您已啟用所需的 API

  1. 記下 Google Cloud 專案的名稱。這個值會顯示在 Google Cloud 控制台的頂端列中,格式為 qwiklabs-gcp- 後接十六進位數字。

  2. 前往 Google Cloud 控制台,依序點選「導覽選單」圖示 >「API 和服務」

  3. 點選「程式庫」

  4. 在「搜尋 API 和服務」方塊輸入 Cloud Build

  5. 如果 Cloud Build API 的搜尋結果資訊卡中,未顯示已啟用 Cloud Build API 的確認訊息,請點選「啟用」按鈕。

  6. 點選返回按鈕回到上一個畫面,找到搜尋框。在搜尋框輸入 Artifact Registry

  7. 如果 Google Artifact Registry API 的搜尋結果資訊卡中,未顯示已啟用 Artifact Registry API 的確認訊息,請點選「啟用」按鈕。

工作 2:使用 DockerFile 和 Cloud Build 建構容器

您可以編寫建構設定檔,指示 Cloud Build 要在建構容器時執行哪些工作。這些建構檔可擷取依附元件、執行單元測試和分析等等。在這項工作中,建立一個 DockerFile 並將其作為 Cloud Build 的建構設定指令碼。此外還會建立一個簡單的殼層指令碼 (quickstart.sh),可用來代表容器內的應用程式。

  1. 在 Google Cloud 控制台標題列中,點選「啟用 Cloud Shell」

  2. 如果出現提示訊息,請點選「授權」

系統隨即會在 Google Cloud 控制台視窗的底部開啟 Cloud Shell。

  1. 使用 nano 文字編輯器,建立空白的 quickstart.sh 檔案:
nano quickstart.sh
  1. quickstart.sh 檔案中新增下列幾行內容:
#!/bin/sh echo "Hello, world! The time is $(date)."
  1. 依序按下 CTRL+X 鍵、Y 鍵和 ENTER 鍵,即可儲存檔案並關閉 nano 編輯器。

  2. 使用 nano 文字編輯器,建立空白的 Dockerfile 檔案:

nano Dockerfile
  1. 新增下列 Dockerfile 指令:
FROM alpine

這會指示建構作業使用 Alpine Linux 基本映像檔。

  1. 在 Dockerfile 的最後新增下列 Dockerfile 指令:
COPY quickstart.sh /

這會將 quickstart.sh 指令碼新增至映像檔中的 / 目錄。

  1. 在 Dockerfile 的最後新增下列 Dockerfile 指令:
CMD ["/quickstart.sh"]

這個指令會將映像檔設為在建立和執行關聯容器時,執行 /quickstart.sh 指令碼。

Dockerfile 目前應如下所示:

FROM alpine COPY quickstart.sh / CMD ["/quickstart.sh"]
  1. 依序按下 CTRL+X 鍵、Y 鍵和 ENTER 鍵,即可儲存檔案並關閉 nano 編輯器。

  2. 在 Cloud Shell 中執行下列指令,將 quickstart.sh 指令碼設為可執行:

chmod +x quickstart.sh
  1. 區域建立名為 quickstart-docker-repo 的 Docker 存放區,並將說明設為「Docker repository」(Docker 存放區)。
gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location={{{project_0.default_region | "REGION"}}} --description="Docker repository"
  1. 在 Cloud Shell 執行下列指令,以在 Cloud Build 建構 Docker 容器映像檔:
gcloud builds submit --tag {{{project_0.default_region | "REGION"}}}-docker.pkg.dev/${DEVSHELL_PROJECT_ID}/quickstart-docker-repo/quickstart-image:tag1

建構完畢後,Docker 映像檔會推送至 Artifact Registry。

  1. 在 Google Cloud 控制台中,找出位於頂端的搜尋列,搜尋 Artifact Registry

  2. 點選名為 quickstart-docker-repo 的存放區。

清單中會顯示名為 quickstart-image 的 Docker 映像檔。

工作 3:使用建構設定檔和 Cloud Build 建構容器

Cloud Build 也支援自訂建構設定檔。在這項工作中,您將透過 Cloud Build 使用自訂的 YAML 格式建構檔案,納入現有的 Docker 容器。

我們來建立自訂 Cloud Build 設定檔範本:cloudbuild.yaml

  1. 使用下列指令建立 cloudbuild.yaml 檔案,並在 nano 編輯器中開啟檔案:
nano cloudbuild.yaml
  1. 開啟 nano 編輯器後,將下列指令貼到 cloudbuild.yaml 檔案:
steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ] images: - 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
  1. 依序按下 Ctrl+OEnter 鍵,儲存編輯過的檔案。

  2. 按下 Ctrl+X 鍵,退出 nano 文字編輯器。

  3. 執行下列指令,設定我們的區域變數,並將該值插入 yaml 檔案。

export REGION={{{project_0.default_region | "REGION"}}} sed -i "s/YourRegionHere/$REGION/g" cloudbuild.yaml
  1. 在 Cloud Shell 執行下列指令,查看 cloudbuild.yaml 的內容:
cat cloudbuild.yaml

輸出內容應如下所示:

steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ] images: - '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'

這個檔案會指示 Cloud Build 使用 Docker,在目前的本機目錄中建構符合 Dockerfile 規格的映像檔,並加上 gcr.io/$PROJECT_ID/quickstart-image 標記 ($PROJECT_ID 是 Cloud Build 依據關聯專案 ID 自動填入的變數),然後推送至 Artifact Registry。

  1. 在 Cloud Shell 執行下列指令,使用 cloudbuild.yaml 做為建構設定檔來啟動 Cloud Build:
gcloud builds submit --config cloudbuild.yaml

Cloud Shell 建構作業的輸出內容應會與先前相同。建構作業完成後,系統會將相同映像檔的新版本推送至 Artifact Registry。

  1. 在 Google Cloud 控制台中,找出位於頂端的搜尋列,搜尋 Artifact Registry

  2. 點選搜尋結果中的「Artifact Registry」

  3. 依序點選存放區「quickstart-docker-repo」>「quickstart-image」

現在,清單中會顯示兩種版本的 quickstart-image

點選「檢查我的進度」,確認目標已達成。 在 Cloud Build 建構兩個容器映像檔

  1. 在 Google Cloud 控制台中,按一下控制台視窗頂端的搜尋列,然後搜尋 Cloud Build

  2. 按一下搜尋結果中的「Cloud Build」

  3. 按一下「Cloud Build」中的「記錄」,清單中會顯示兩種建構。

  4. 在清單頂端找到要查看的建構項目,點選相應的建構 ID。 畫面會顯示建構詳細資料,包括建構記錄檔。

工作 4:使用建構設定檔和 Cloud Build 建構及測試容器

自訂建構設定檔的真正優勢在於可同時或依序執行其他動作,並簡化容器建構程序,例如對新建立的容器執行測試、將容器推送至各個目的地,甚至是將容器部署至 Kubernetes Engine。

在這項工作中,我們將簡單示範建構設定檔如何測試自身建構的容器,並將結果回報至呼叫環境。首先我們要更改 quickstart.sh 檔案。

  1. 前往 Cloud Shell,在 nano 編輯器中開啟 quickstart.sh

    nano quickstart.sh
  2. 將現有檔案內容換成下列指令:

#!/bin/sh if [ -z "$1" ] then echo "Hello, world! The time is $(date)." exit 0 else exit 1 fi
  1. 依序按下 Ctrl+OEnter 鍵,儲存編輯過的檔案。

  2. 按下 Ctrl+X 鍵,退出 nano 文字編輯器。

我們來建立新的自訂 Cloud Build 設定檔:cloudbuild2.yaml。為了示範 Cloud Build 如何測試自身建構的容器,檔案的部分內容已稍做修改。

  1. 使用下列指令建立 cloudbuild2.yaml 檔案,並在 nano 編輯器中開啟檔案:
nano cloudbuild2.yaml
  1. 開啟 nano 編輯器後,將下列指令貼到 cloudbuild2.yaml 檔案:
steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ] - name: 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1' args: ['fail'] images: - 'YourRegionHere-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
  1. 依序按下 Ctrl+OEnter 鍵,儲存編輯過的檔案。

  2. 按下 Ctrl+X 鍵,退出 nano 文字編輯器。

  3. 執行下列指令,將我們的區域值插入新建立的 yaml 檔案。

sed -i "s/YourRegionHere/$REGION/g" cloudbuild2.yaml
  1. 在 Cloud Shell 執行下列指令,查看 cloudbuild2.yaml 的內容:
cat cloudbuild2.yaml

輸出內容應如下所示:

steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ] - name: 'gcr.io/$PROJECT_ID/quickstart-image' args: ['fail'] images: - '{{{project_0.default_region | "REGION"}}}-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'

除了前述動作,這個建構設定檔還會執行自己先前建立的 quickstart-image。在這項工作中,quickstart.sh 指令碼已經過修改,以便在引數傳遞 ['fail'] 時模擬測試失敗。

  1. 在 Cloud Shell 執行下列指令,使用 cloudbuild.yaml 做為建構設定檔來啟動 Cloud Build:
gcloud builds submit --config cloudbuild2.yaml

指令輸出內容的結尾文字應如下所示:

輸出內容

BUILD FAILURE: Build step failure: build step 1 "us-east1-docker.pkg.dev/qwiklabs-gcp-02-1c7ba5c697a0/quickstart-docker-repo/quickstart-image:tag1" failed: starting step container failed: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "fail": executable file not found in $PATH: unknown ERROR: (gcloud.builds.submit) build 96c4a454-be06-4010-aa7c-da57c14165f4 completed with status "FAILURE"
  1. 確認指令殼層偵測到構建失敗:
echo $?

指令會回應零以外的數值。只要將這項建構作業嵌入至指令碼中,指令碼就能對失敗的建構作業採取行動。

點選「檢查我的進度」,確認目標已達成。 使用建構設定檔和 Cloud Build 建構及測試容器

關閉研究室

如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。

您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

星級評等代表您的滿意程度:

  • 1 星 = 非常不滿意
  • 2 星 = 不滿意
  • 3 星 = 普通
  • 4 星 = 滿意
  • 5 星 = 非常滿意

如果不想提供意見回饋,您可以直接關閉對話方塊。

如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

Copyright 2022 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

上一步 下一步

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
预览