使用特定的构建器

构建器是版本化映像,包含创建可运行容器所需的所有组件。每个构建器都使用特定的操作系统发行版作为基础映像(如 Ubuntu 22),并且支持多个编程语言版本。

如果需要,您可能需要自定义构建器的版本:

  • 特定于操作系统的依赖项,仅在特定的构建器版本中可用。
  • 编程语言的特定版本,仅在特定的构建器版本中可用。

本地构建

对于本地构建,您必须已安装 Pack CLI 和 Docker。

准备工作

  1. 在工作站上安装 Docker 社区版 (CE)pack 将 Docker 用作 OCI 映像构建器。
  2. 安装 Pack CLI
  3. 安装 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) 设置构建器

  1. 在应用根目录中,使用以下配置创建一个名为 project.toml 的文件:
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. 通过运行“pack”命令构建您的应用:
    pack build SERVICE_IMAGE_NAME

您需要将其中的:

  • BUILDER_IMAGE_URL 替换为构建器的网址,例如 gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME 替换为您为应用映像选择的名称。

远程构建

您可以在提交项目时附加 --pack 标志,将特定构建器与 Cloud Build 搭配使用。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Cloud Build and Artifact Registry API。

    启用 API

  5. 安装 Google Cloud CLI。
  6. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. 确保您的 Google Cloud 项目已启用结算功能

  9. 启用 Cloud Build and Artifact Registry API。

    启用 API

  10. 安装 Google Cloud CLI。
  11. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  12. 确保您的 Google Cloud 项目有权访问容器映像代码库。

    如需配置对 Artifact Registry 中的 Docker 代码库的访问权限,请执行以下操作:

    1. 在 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"
      
    2. 验证您的代码库已创建:
      gcloud artifacts repositories list
      

      您应该会在列表中看到为 Docker 代码库选择的名称。

使用特定构建器构建应用

  1. 使用 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 文档

  2. 验证示例应用是否已成功发布到 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)设置构建器

  1. 在应用目录的根目录中初始化 project.toml 文件,并将以下配置粘贴到其中:
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. 从源代码部署应用
    gcloud run deploy --source . SERVICE_IMAGE_NAME

您需要将其中的:

  • BUILDER_IMAGE_URL 替换为构建器的网址。示例:gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME 替换为您创建的容器映像的名称。