设置环境变量以配置构建

您可以配置要在构建容器映像期间设置的环境变量。

您还可以通过扩展构建来自定义容器映像并运行映像

本地构建

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

准备工作

  1. 在工作站上安装 Docker 社区版 (CE)pack 会将 Docker 用作 OCI 映像构建器。
  2. 安装 Pack CLI
  3. 安装 Git 源代码控制工具以从 GitHub 获取示例应用。

设置环境变量

如需为本地构建设置环境变量,请将 --env 标志附加到每个环境变量的 pack 命令。

您可以使用运行时支持的一个或多个环境变量

pack build SERVICE_NAME \
    --env ENVIRONMENT_VARIABLE

您需要进行如下替换:

  • SERVICE_NAME 替换为应用或函数的服务名称。
  • ENVIRONMENT_VARIABLE 替换为要在构建期间设置的环境变量。
示例

如需在容器映像中设置 GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app" 环境变量,请运行以下命令:

pack build my-app \
    --builder gcr.io/buildpacks/builder:v1 \
    --env GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app"
    --env MY-LOCAL-ENV-VARIABLE

远程构建

如需为远程构建设置环境变量,可以使用 project.toml 项目描述符。Cloud Build 在构建容器映像时会使用 project.toml 项目描述符。

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    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. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    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. 将示例代码库克隆到本地计算机:
    git clone https://github.com/GoogleCloudPlatform/buildpack-samples.git
  2. 切换到包含应用示例代码的目录:

    Go

    cd buildpack-samples/sample-go

    Java

    cd buildpack-samples/sample-java-gradle

    Node.js

    cd buildpack-samples/sample-node

    PHP

    cd buildpack-samples/sample-php

    Python

    cd buildpack-samples/sample-python

    Ruby

    cd buildpack-samples/sample-ruby

    .NET

    cd buildpack-samples/sample-dotnet

使用环境变量构建应用

  1. 在服务的根目录中,创建或更新 project.toml 项目描述符,以包含 [[build.env]] 部分和任何受支持的环境变量
    [[build.env]]
        name = "ENVIRONMENT_VARIABLE_NAME"
        value = "ENVIRONMENT_VARIABLE_VALUE"

    您需要进行如下替换:

    • ENVIRONMENT_VARIABLE_NAME 替换为受支持的环境变量的名称。
    • ENVIRONMENT_VARIABLE_VALUE 替换为所指定环境变量的相应值。

    示例

    [[build.env]]
        name = "GOOGLE_ENTRYPOINT"
        value = "gunicorn -p :8080 main:app"
  2. 使用 gcloud 将应用源代码提交到 Cloud Build:
    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME

    您需要进行如下替换:

    • LOCATION 替换为容器仓库的区域名称。示例:us-west2-docker.pkg.dev
    • PROJECT_ID 替换为您的 Google Cloud 项目的 ID。
    • REPO_NAME 替换为 Docker 仓库的名称。
    • IMAGE_NAME 替换为容器映像的名称。

    示例:如果您下载了示例应用,请运行相应的命令:

    Go

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-go

    Java

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-java-gradle

    Node.js

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-node

    PHP

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-php

    Python

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-python

    Ruby

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-ruby

    .NET

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-dotnet
  3. 验证示例应用已成功发布到 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 仓库的名称。