配置构建和运行映像

Buildpack 使用默认的构建器,其中包含执行服务构建所需的所有组件,包括构建和运行映像:

  • 构建映像:构建器映像用于创建执行 buildpack 生命周期的构建环境。此环境是您的应用或函数为容器化做好准备的地方。
  • 运行映像:用以构建服务的容器映像的基础映像。这是托管您构建的应用或函数的映像。

这两种映像都可以进行自定义和扩展,以满足您的需求。例如,您可以自定义映像,以添加构建服务所需的软件包,或安装系统软件包,以便在服务运行时使用这些软件包。

准备工作

您可以使用 pack CLI 在本地将服务构建到容器映像中。

准备工作

  1. 在工作站上安装 Docker 社区版 (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
    
  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 替换为自定义运行映像的名称。