Buildpack 使用默认的构建器,其中包含执行服务构建所需的所有组件,包括构建和运行映像:
- 构建映像:构建器映像用于创建执行 buildpack 生命周期的构建环境。此环境是您的应用或函数为容器化做好准备的地方。
- 运行映像:用于构建服务的容器映像的基础映像。这是托管您构建的应用或函数的映像。
您可以根据自己的需求自定义和扩展这两个映像。例如,您可以自定义映像以添加构建服务所需的软件包,或安装系统软件包以便在服务运行时可用。
准备工作
您可以使用 pack
CLI 在本地将服务构建到容器映像中。
准备工作
- 在工作站上安装 Docker 社区版 (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
替换为自定义运行映像的名称。
- 将