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

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

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

使用社群提供的建構工具

社群貢獻的建構工具無法使用預先建構的映像檔;如要在 Cloud Build 設定檔中使用這些建構工具,您必須先建構映像檔,然後將其推送至專案中的 Container 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 的任何檔案都可供其他建構步驟使用。

自訂建構工具可推送至或從 Container Registry 中的存放區 (託管於 gcr.io/$PROJECT-NAME/) 提取,build 服務帳戶可存取該存放區。

以下步驟說明如何使用範例 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. 建構並將自訂建構工具推送至專案中的 Container 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. 使用建構設定檔手動使用觸發條件啟動建構作業。

後續步驟