Buildpack 會使用預設的建構器,其中包含執行服務建構作業所需的所有元件,包括建構和執行映像檔:
- 建構映像檔:建構器映像檔會使用此映像檔,建立建構環境,並執行建構包的生命週期。這就是應用程式或函式為容器化所做的準備。
- Run 映像檔:建構服務容器映像檔時所用的基礎映像檔。這是代管已建構應用程式或函式的映像檔。
這兩張圖片都可以自訂及擴充,以符合您的需求。舉例來說,您可以自訂映像檔,新增建構服務所需的套件,或是安裝系統套件,以便在服務執行時使用。
事前準備
您可以使用 pack
CLI 在本機將服務建構為容器映像檔。
事前準備
- 在工作站上安裝 Docker Community Edition (CE)。
pack
會使用 Docker 做為 OCI 映像檔建構工具。 - 安裝 Pack CLI。
- 安裝 Git 原始碼控管工具,以便從 GitHub 中擷取範例應用程式。
自訂建構和執行映像檔
Buildpack 會使用建構工具映像檔,將您的服務建構為容器映像檔。建構程序完成後,應用程式或函式就會插入執行映像檔。如要進一步瞭解建構程序,請參閱「Buildpack 概念」。
擴充建構工具映像檔
如要自訂預設建構工具映像檔,請按照下列步驟操作:
從預設建構工具映像檔建立自訂
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
從
builder.Dockerfile
檔案建構自訂建構工具映像檔:docker build -t BUILDER_IMAGE_NAME -f builder.Dockerfile .
將
BUILDER_IMAGE_NAME
替換為您為自訂建構工具映像檔選擇的名稱。使用自訂建構工具映像檔執行
pack build
指令,建構應用程式或函式的新容器映像檔:pack build SERVICE_IMAGE_NAME --builder BUILDER_IMAGE_NAME
取代:
SERVICE_IMAGE_NAME
改為您為應用程式或函式映像檔選擇的名稱。BUILDER_IMAGE_NAME
改為自訂建構工具映像檔的名稱。
擴充執行映像檔
如要自訂預設執行容器映像檔,請按照下列步驟操作:
從預設執行映像檔建立自訂
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
使用
run.Dockerfile
檔案建構自訂跑步行程映像檔:docker build -t RUN_IMAGE_NAME -f run.Dockerfile .
將
RUN_IMAGE_NAME
替換為您為自訂執行映像檔選擇的名稱。使用自訂執行映像檔執行
pack build
指令,建構應用程式或函式的新容器映像檔:pack build SERVICE_IMAGE_NAME --builder gcr.io/buildpacks/builder:v1 --run-image RUN_IMAGE
取代:
SERVICE_IMAGE_NAME
改為您為應用程式或函式映像檔選擇的名稱。RUN_IMAGE_NAME
改為自訂執行映像檔的名稱。