构建器是版本化映像,包含创建可运行容器所需的所有组件。每个构建器都使用特定的操作系统发行版作为基础映像(如 Ubuntu 22),并且支持多个编程语言版本。
如果需要,您可能需要自定义构建器的版本:
- 特定于操作系统的依赖项,仅在特定的构建器版本中可用。
- 编程语言的特定版本,仅在特定的构建器版本中可用。
本地构建
对于本地构建,您必须已安装 Pack CLI 和 Docker。
准备工作
- 在工作站上安装 Docker 社区版 (CE)。
pack
将 Docker 用作 OCI 映像构建器。 - 安装 Pack CLI。
- 安装 Git 源代码控制工具以从 GitHub 获取示例应用。
使用 pack
指定构建器版本
您可以将 --builder
标志附加到 pack 命令中,以指定要使用的构建器版本:
pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL
您需要将其中的:
- 将
BUILDER_IMAGE_URL
替换为构建器的网址。示例:gcr.io/buildpacks/builder:google-22
- 将
SERVICE_IMAGE_NAME
替换为您为应用映像选择的名称。
如需详细了解 pack
命令,请参阅 CLI 文档
使用 project.toml
指定构建器版本
使用 pack
进行构建时,您可以使用 buildpack 项目描述符 (project.toml
) 设置构建器
- 在应用根目录中,使用以下配置创建一个名为
project.toml
的文件:[build] builder = "BUILDER_IMAGE_URL"
-
通过运行“pack”命令构建您的应用:
pack build SERVICE_IMAGE_NAME
您需要将其中的:
- 将
BUILDER_IMAGE_URL
替换为构建器的网址,例如gcr.io/buildpacks/builder:google-22
- 将
SERVICE_IMAGE_NAME
替换为您为应用映像选择的名称。
远程构建
您可以在提交项目时附加 --pack
标志,将特定构建器与 Cloud Build 搭配使用。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Cloud Build and Artifact Registry API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Cloud Build and Artifact Registry API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
- 确保您的 Google Cloud 项目有权访问容器映像代码库。
如需配置对 Artifact Registry 中的 Docker 代码库的访问权限,请执行以下操作:
- 在 Google Cloud 项目的同一位置创建一个新的 Docker 代码库。
gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
您需要进行如下替换:- 将
REPO_NAME
替换为您为 Docker 代码库选择的名称。 - 将
REGION
替换为 Google Cloud 项目的位置或最接近该位置的位置。 - 将
DESCRIPTION
替换为您选择的说明。
例如,如需在
us-west2
中创建具有说明“Docker 仓库”的docker
仓库,请运行以下命令:gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
- 将
- 验证您的代码库已创建:
gcloud artifacts repositories list
您应该会在列表中看到为 Docker 代码库选择的名称。
- 在 Google Cloud 项目的同一位置创建一个新的 Docker 代码库。
使用特定构建器构建应用
- 使用
gcloud
将应用源代码提交到 Cloud Build:gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME
您需要进行如下替换:
- 将
BUILDER_IMAGE_URL
替换为构建器的网址。 示例:gcr.io/buildpacks/builder:google-22
- 将
LOCATION
替换为容器代码库的区域名称。 示例:us-west2-docker.pkg.dev
- 将
PROJECT_ID
替换为您的 Google Cloud 项目的 ID。 - 将
REPO_NAME
替换为您的 Docker 代码库的名称。 - 将
SERVICE_IMAGE_NAME
替换为您创建的容器映像的名称。
如需详细了解
submit
命令,请参阅 Cloud Build 文档。 - 将
-
验证示例应用是否已成功发布到
REPO_NAME
:gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME
您需要将其中的:
- 将
LOCATION
替换为容器代码库的区域名称。 示例:us-west2-docker.pkg.dev
- 将
PROJECT_ID
替换为您的 Google Cloud 项目的 ID。 - 将
REPO_NAME
替换为您的 Docker 代码库的名称。
- 将
使用 Cloud Run 从源代码部署
使用 Cloud Run 从源代码部署时,您可以使用 buildpack 项目描述符文件(例如 project.toml
)设置构建器
- 在应用目录的根目录中初始化
project.toml
文件,并将以下配置粘贴到其中:[build] builder = "BUILDER_IMAGE_URL"
-
从源代码部署应用
gcloud run deploy --source . SERVICE_IMAGE_NAME
您需要将其中的:
- 将
BUILDER_IMAGE_URL
替换为构建器的网址。示例:gcr.io/buildpacks/builder:google-22
- 将
SERVICE_IMAGE_NAME
替换为您创建的容器映像的名称。