快速入门:构建

本页面介绍如何使用 Cloud Build 构建 Docker 映像并将该映像推送到 Container Registry。Container Registry 可在 Google Cloud 上提供安全、私密的 Docker 映像存储空间。

您首先使用 Docker 配置文件 Dockerfile 构建映像,然后使用 Cloud Build 配置文件构建相同的映像。

准备工作

  1. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册一个新帐号

  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到项目选择器页面

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Cloud Build API。

    启用 API

  5. 安装并初始化 Cloud SDK

准备源文件

您需要一些示例源代码来打包到容器映像中。在此部分,您将创建一个简单的 shell 脚本和 DockerfileDockerfile 是文本文档,其中有 Docker 如何构建映像的说明。

  1. 打开终端窗口。

  2. 创建名为 quickstart-docker 的新目录并导航至该目录:

    mkdir quickstart-docker
    cd quickstart-docker
    
  3. 创建一个名为 quickstart.sh 的文件,其中包含以下内容:

    #!/bin/sh
    echo "Hello, world! The time is $(date)."
    
  4. 创建一个名为 Dockerfile 的文件,其中包含以下内容:

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
    
  5. 运行以下命令来使 quickstart.sh 可执行:

    chmod +x quickstart.sh
    

使用 Dockerfile 构建

Cloud Build 允许您使用 Dockerfile 构建 Docker 映像。您不需要单独的 Cloud Build 配置文件。

如需使用 Dockerfile 构建,请执行以下操作:

  1. 通过运行以下命令获取您的 Cloud 项目 ID:

    gcloud config get-value project
    
  2. 从包含 quickstart.shDockerfile 的目录运行以下命令,其中 project-id 是您的 Cloud 项目 ID:

    gcloud builds submit --tag gcr.io/project-id/quickstart-image
    

构建完成后,您将看到类似于以下内容的输出:

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  9S    gs://[PROJECT_ID]_cloudbuild/source/1508159187.8-b0d8841d51674a30aebd1e55bb99486f.gz  gcr.io/[PROJECT_ID]/quickstart-image (+1 more)       SUCCESS

您刚刚使用 Dockerfile 构建了一个名为 quickstart-image 的 Docker 映像,并将该映像推送到了 Container Registry。

使用构建配置文件构建

在此部分,您将使用 Cloud Build 配置文件构建与上文相同的 Docker 映像。构建配置文件会指示 Cloud Build 根据您的规范执行任务。

  1. 在包含 quickstart.shDockerfile 的同一目录中,创建名为 cloudbuild.yaml 且包含以下内容的文件。此文件是您的构建配置文件。构建时,Cloud Build 会自动将 $PROJECT_ID 替换为您的项目 ID。

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
    images:
    - 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
    
  2. 通过运行以下命令启动构建:

    gcloud builds submit --config cloudbuild.yaml
    

构建完成后,您将看到类似于以下内容的输出:

DONE
-------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION SOURCE                                   STATUS
$BUILD_ID                             2016-09-28T13:46:29+00:00  8S    gs://[PROJECT_ID]_cloudbuild/source/1508158566.55-725755714baa4b7e9e99984c422ec4e2.gz  gcr.io/[PROJECT-ID]/quickstart-image (+1 more)       SUCCESS

您刚刚使用构建配置文件构建了 quickstart-image 并将该映像推送到了 Container Registry。

查看构建详情

  1. 打开 Google Cloud Console 中的 Cloud Build 页面。

    打开 Cloud Build 页面

  2. 选择您的项目,然后点击打开

    您将看到构建记录页面:

    构建记录页面的屏幕截图

  3. 点击特定构建。

    您将看到构建详情页面。

  4. 如需查看构建的工件,请点击构建摘要下的构建工件

    您将看到类似于以下内容的输出:

    构建工件的屏幕截图

    您可以从此页下载您的构建日志,并查看 Container Registry 中映像的详情。

清理

为避免系统因本快速入门中使用的资源向您的 Google Cloud 帐号收取费用,请按照以下步骤操作。

  1. 打开 Google Cloud Console 中的 Container Registry 页面。

    打开 Container Registry 页面

  2. 选择您的项目,然后点击打开

  3. 点击 quickstart-image

  4. 选择所有映像,然后点击删除

您现在已经删除了在此快速入门中创建的映像。

大功告成,您已经完成快速入门!

后续步骤