設定建構和執行映像檔

Buildpack 會使用預設的建構器,其中包含執行服務建構作業所需的所有元件,包括建構執行映像檔:

  • 建構映像檔:建構器映像檔會使用此映像檔,建立建構環境,並執行建構包的生命週期。這就是應用程式或函式為容器化所做的準備。
  • Run 映像檔:建構服務容器映像檔時所用的基礎映像檔。這是代管已建構應用程式或函式的映像檔。

這兩張圖片都可以自訂及擴充,以符合您的需求。舉例來說,您可以自訂映像檔,新增建構服務所需的套件,或是安裝系統套件,以便在服務執行時使用。

事前準備

您可以使用 pack CLI 在本機將服務建構為容器映像檔。

事前準備

  1. 在工作站上安裝 Docker Community Edition (CE)pack 會使用 Docker 做為 OCI 映像檔建構工具。
  2. 安裝 Pack CLI
  3. 安裝 Git 原始碼控管工具,以便從 GitHub 中擷取範例應用程式。

自訂建構和執行映像檔

Buildpack 會使用建構工具映像檔,將您的服務建構為容器映像檔。建構程序完成後,應用程式或函式就會插入執行映像檔。如要進一步瞭解建構程序,請參閱「Buildpack 概念」。

擴充建構工具映像檔

如要自訂預設建構工具映像檔,請按照下列步驟操作:

  1. 從預設建構工具映像檔建立自訂 builder.Dockerfile。您必須為支援基礎映像的建構工具版本指定標記。例如,:google-22 建構工具標記不支援 :v1 基礎映像檔標記。

    範例:

    FROM gcr.io/buildpacks/builder
    USER root
    RUN apt-get update && apt-get install -y --no-install-recommends \
      subversion && \
      apt-get clean && \
      rm -rf /var/lib/apt/lists/*
    USER cnb
    
  2. builder.Dockerfile 檔案建構自訂建構工具映像檔:

    docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
    

    BUILDER_IMAGE_NAME 替換為您為自訂建構工具映像檔選擇的名稱。

  3. 使用自訂建構工具映像檔執行 pack build 指令,建構應用程式或函式的新容器映像檔:

    pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
    

    取代:

    • SERVICE_IMAGE_NAME 改為您為應用程式或函式映像檔選擇的名稱。
    • BUILDER_IMAGE_NAME 改為自訂建構工具映像檔的名稱。

擴充執行映像檔

如要自訂預設執行容器映像檔,請按照下列步驟操作:

  1. 從預設執行映像檔建立自訂 run.Dockerfile。您必須指定支援執行映像檔的建構工具版本標記。例如,:google-22 建構工具標記不支援 :v1 執行圖片標記。

    範例:

    FROM gcr.io/buildpacks/gcp/run
    USER root
    RUN apt-get update && apt-get install -y --no-install-recommends \
      imagemagick && \
      apt-get clean && \
      rm -rf /var/lib/apt/lists/*
    USER 33:33
    
  2. 使用 run.Dockerfile 檔案建構自訂跑步行程映像檔:

    docker build -t RUN_IMAGE_NAME -f run.Dockerfile .
    

    RUN_IMAGE_NAME 替換為您為自訂執行映像檔選擇的名稱。

  3. 使用自訂執行映像檔執行 pack build 指令,建構應用程式或函式的新容器映像檔:

    pack build SERVICE_IMAGE_NAME --builder gcr.io/buildpacks/builder:v1 --run-image RUN_IMAGE
    

    取代:

    • SERVICE_IMAGE_NAME 改為您為應用程式或函式映像檔選擇的名稱。
    • RUN_IMAGE_NAME 改為自訂執行映像檔的名稱。