存储和管理构建日志

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

运行构建时,Cloud Build 会收集并存储构建日志。本页面介绍了如何存储、查看和删除构建日志。

选择存储构建日志的位置

您可以配置 Cloud Build 以将构建日志存储在 Cloud Logging 或 Cloud Storage 中,方法是在 Cloud Build 配置文件中添加 logging 字段。如果您未在构建配置文件中指定 logging 字段,则 Cloud Build 会将构建日志同时存储在 Logging 和 Cloud Storage 中。

以下步骤仅将构建日志存储在 Logging 中:

  1. 在构建配置文件中,将 logging 的值设置为 CLOUD_LOGGING_ONLY

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'gcr.io/myproject/myimage', '.']
    options:
      logging: CLOUD_LOGGING_ONLY
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/cloud-builders/docker",
        "args": [
          "build",
          "-t",
          "gcr.io/myproject/myimage",
          "."
        ]
      }
      ],
      "options": {
        "logging": "CLOUD_LOGGING_ONLY"
      }
    }
    
  2. 使用构建配置文件来使用命令行,API触发器启动构建。

将构建日志存储在 Google 创建的默认存储桶中

默认情况下,Cloud Build 会将构建日志存储在 Google 创建的 Cloud Storage 存储桶中。您可以查看存储在 Google 创建的 Cloud Storage 存储桶中的构建日志,但无法对其执行任何其他更改。如果您需要完全控制日志存储桶,请将日志存储在用户创建的 Cloud Storage 存储桶中。

将构建日志存储在用户创建的存储桶中

IAM 权限

如需将构建日志存储在您自己的 Cloud Storage 存储桶中,您必须先向 Cloud Build 服务帐号用户指定的服务帐号授予必要的 IAM 权限:

  • 如果您的 Cloud Storage 存储桶与 Cloud Build 位于同一 Cloud 项目中,并且您使用的是 Cloud Build 服务帐号,则默认情况下,Cloud Build 服务帐号具有必要的 IAM 权限。您无需授予任何其他权限。

  • 如果您的 Cloud Storage 存储桶与 Cloud Build 位于同一 Cloud 项目中,并且您使用的是用户指定的服务帐号,请向服务帐号授予 Storage Admin 角色。如需了解如何向服务帐号授予角色,请参阅授予项目的角色

  • 如果您的 Cloud Storage 存储桶与 Cloud Build 位于不同的 Cloud 项目中,请将 Storage Admin 角色授予 Cloud Build 服务帐号

    1. 打开 IAM 页面:

      打开 IAM 页面

    2. 选择您要使用 Cloud Build 在其中运行构建的项目。

    3. 在权限表中,找到以 @cloudbuild.gserviceaccount.com 结尾的电子邮件地址,并记下该地址。这是您的 Cloud Build 服务帐号。

    4. 打开 Cloud Storage 存储桶所在的项目中的 IAM 页面:

      打开 IAM 页面

    5. 点击授予使用权限

    6. 输入 Cloud Build 服务帐号的电子邮件地址。

    7. 选择 Cloud Storage > Storage Admin

    8. 点击保存

要指定 Cloud Storage 存储桶以存储构建日志,请执行以下操作

  1. 在您的 Cloud 项目中,创建 Cloud Storage 存储桶以存储构建日志。

  2. 在构建配置文件中,添加一个 logsBucket 字段,其指向您为存储构建日志而创建的 Cloud Storage 存储桶。以下示例构建配置文件包含构建容器映像并将构建日志存储在名为 mylogsbucket 的存储桶中的说明:

    YAML

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'gcr.io/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
        options:
          logging: GCS_ONLY
    

    JSON

        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "gcr.io/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket",
           "options": {
             "logging": "GCS_ONLY"
           }
        }
    
  3. 使用构建配置文件来使用命令行,API触发器启动构建。

构建完成后,Cloud Build 会将日志存储在您在构建配置文件中指定的 Cloud Storage 存储桶中。

查看构建日志

IAM 权限

  • 如果您的构建日志位于 Logging 中,请向要查看构建日志的主帐号授予针对在其中配置构建的项目的 Logs Viewer 角色:

    1. 打开 IAM 页面:

      打开 IAM 页面

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

    3. 在权限表中,找到主帐号的电子邮件 ID,然后点击铅笔图标。

    4. 选择 Logging > Logs Viewer 角色。

    5. 点击保存

  • 如果构建日志位于Google 创建的默认 Cloud Storage 存储桶中,请将其中配置了构建的项目的 Project Viewer 角色授予想要查看构建日志的主帐号:

    1. 打开 IAM 页面:

      打开 IAM 页面

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

    3. 在权限表中,找到主帐号的电子邮件 ID,然后点击铅笔图标。

    4. 选择 Project > Viewer 角色。

    5. 点击保存

    如果构建日志位于用户指定的 Cloud Storage 存储桶中,请将 Storage Object Viewer 角色授予想要查看构建日志的主帐号:

    1. 打开 IAM 页面:

      打开 IAM 页面

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

    3. 在权限表中,找到主帐号的电子邮件 ID,然后点击铅笔图标。

    4. 选择 Cloud Storage > Storage Object Viewer 角色。

    5. 点击保存

如需在 Cloud Build 中查看构建日志,请执行以下操作:

控制台

  1. 打开 Google Cloud 控制台中的 Cloud Build 页面。

    打开 Cloud Build 页面

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

  3. 区域下拉菜单中,为您的构建选择区域

  4. 构建记录页面中,点击特定构建。

  5. 构建详情页面的步骤下,点击构建摘要以查看整个构建的构建日志,或点击某个构建步骤查看该步骤的构建日志。

    “构建详情”页面中的构建日志的屏幕截图

  6. 如果您的日志存储在 Logging 中,请在构建日志面板中点击 图标以在日志浏览器中查看日志。

    日志浏览器中构建日志的屏幕截图

gcloud

运行 gcloud builds log 命令,其中 build-id 是您要获取构建日志的构建的 ID。运行 gcloud builds submit 时将在构建提交过程结束时显示构建 ID,或者在运行 gcloud builds list 时将显示在 ID 列中。

gcloud builds log build-id

如需在 GitHub 和 GitHub Enterprise 中查看构建日志,请执行以下操作:

如果您创建 GitHubGitHub Enterprise 触发器并将 --include-logs-with-status 指定为选项,则可以在 GitHub 和 GitHub Enterprise 中查看构建日志。

如需在 GitHub 和 GitHub Enterprise 中查看构建日志,请执行以下操作:

  1. 转到与您的触发器关联的代码库。

  2. 转到您的提交内容列表。

  3. 找到要查看构建日志的提交所对应的行。

  4. 点击提交行中的结果图标。

    您将看到与您的提交相关联的检查列表。

  5. 点击您要查看构建日志的行的详细信息

    您会看到与您的提交内容关联的摘要页面。如果您使用 --include-logs-with-status 标志创建了触发器,则会在页面的详细信息部分中看到构建日志。

删除构建日志

您不能删除位于 Google 创建的日志存储桶中的构建日志。

如需删除位于用户创建的日志存储桶中的构建日志,请执行以下操作:

  1. Storage Object Admin 角色授予要删除日志的用户或服务帐号。

  2. 按照删除对象中关于删除 Cloud Storage 对象的说明,来删除构建日志。

如需删除用户创建的日志存储桶,请执行以下操作:

  1. Storage Admin 角色授予要删除日志存储桶的用户或服务帐号。

  2. 按照删除存储桶中关于删除存储桶的说明,来删除日志存储桶。

后续步骤