使用社群提供的建構工具和自訂建構工具

本頁說明如何在 Cloud Build 中使用社群提供的建構工具和自訂建構工具。Cloud Build 開發人員社群提供開放原始碼建構工具,您可以使用這些工具執行工作。如果想執行的工作需要現有映像檔未提供的功能,您可以建構自己的自訂映像檔,並在建構步驟中使用。如要瞭解不同類型的建構工具,請參閱「雲端建構工具」。

如果您是 Cloud Build 新手,請先參閱快速入門導覽課程建構設定總覽

使用社群提供的建構工具

社群貢獻的建構工具無法使用預先建構的映像檔;如要在 Cloud Build 設定檔中使用這些建構工具,您必須先建構映像檔,然後將其推送至專案中的 Artifact Registry

如何使用社群提供的建構工具:

  1. 建構及推送建構工具:

    1. 前往專案根目錄。

    2. 複製 cloud-builders-community 存放區:

      git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
      
    3. 前往要使用的建構工具映像檔,其中 builder-name 是包含建構工具的目錄:

      cd cloud-builders-community/builder-name
      
    4. 將建構工具提交至專案:

      gcloud builds submit .
      
    5. 返回專案根目錄:

      cd ../..
      
    6. 從根目錄中移除存放區:

      rm -rf cloud-builders-community/
      
  2. 在 Cloud Build 設定檔中,於建構步驟中使用建構工具:

    YAML

    steps:
    - name: 'gcr.io/project-id/builder-name'
      args: ['arg1', 'arg2', ...]
    ...
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/project-id/builder-name",
        "args": [
          "arg1",
          "arg2",
          ...
        ]
        ...
      }
      ]
    }
    
  3. 使用建構設定檔手動啟動建構使用觸發條件啟動建構

如需使用社群提供的建構工具的範例,請參閱「部署至 Firebase」和「使用 Packer 建立 VM 映像檔」。

建立自訂建構工具

如果想執行的工作需要的功能,公開映像檔、支援的建構工具或社群貢獻的建構工具未提供,您可以自行建構映像檔,並在建構步驟中使用。

以下是您可能想要使用自訂建構工具映像檔的狀況範例:

  • 從外部位置下載原始碼或套件。
  • 使用外部工具鍊。
  • 快取任何所需程式庫。
  • 預先建構原始碼 (Cloud Build 僅對可能會將建構封裝至映像檔的情況負責)。

與其他建構工具一樣,自訂建構工具會在來源掛接到 /workspace 之下時執行,並且會在 /workspace 的工作目錄中執行。指定建構步驟留在 /workspace 的任何檔案都可供其他建構步驟使用。

自訂建構工具可推送到構件登錄服務 (託管於 gcr.io/$PROJECT-NAME/) 的存放區,或從該處提取,前提是建構服務帳戶具有存取權。

下列步驟說明如何建立及使用自訂建構工具,並提供範例 Dockerfile

  1. 建立自訂建構工具映像檔:

    1. 為自訂建構工具建立 Dockerfile。以下程式碼為 Dockerfile 的範例:

        FROM alpine
        RUN apk add curl
        CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
      
    2. 在專案中建構自訂建構工具並推送至 Artifact Registry,並將 project-idimage-name 的值替換為適當的值:

        gcloud builds submit --tag gcr.io/project-id/image-name
      
  2. 如要在 Cloud Build 中使用自訂建構工具映像檔,請在建構步驟的 name 欄位中指定建構工具:

    YAML

        steps:
        - name: 'gcr.io/project-id/image-name'
          id: Determine IP of this build worker
    

    JSON

        {
          "steps": [
          {
            "name": "gcr.io/project-id/image-name",
            "id": "Determine IP of this build worker"
          }
          ]
        }
    
  3. 使用建構設定檔手動啟動建構使用觸發條件啟動建構

後續步驟