使用 Amazon CodeBuild 代理在本地运行构建 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon CodeBuild 代理在本地运行构建

您可以使用 Amazon CodeBuild 代理在本地计算机上运行 CodeBuild 构建。有适用于 x86_64 和 ARM 平台的代理。

您还可以进行订阅,这样便能在发布代理的新版本时收到通知。

先决条件

在开始之前,您需要执行以下操作:

  • 在本地计算机上安装 Git。

  • 在本地计算机上安装和设置 Docker

设置构建映像

您只需要在首次运行代理时或映像发生更改时设置构建映像。

设置构建映像
  1. 如果您想使用精心策划的 Amazon Linux 2 映像,则可以使用以下命令从 CodeBuild 公共 Amazon ECR 存储库 (https://gallery.ecr.aws/codebuild/amazonlinux2-x86_64-standard) 中拉取该映像:

    $ docker pull public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:4.0

    或者,如果要使用另一个 Linux 映像,请执行以下步骤:

    1. 克隆 CodeBuild 映像存储库:

      $ git clone https://github.com/aws/aws-codebuild-docker-images.git
    2. 切换到该映像目录。本示例使用 aws/codebuild/standard:5.0 映像:

      $ cd aws-codebuild-docker-images/ubuntu/standard/5.0
    3. 构建映像。这将需要花几分钟的时间。

      $ docker build -t aws/codebuild/standard:5.0 .
  2. 下载 CodeBuild 代理。

    要下载 x86_64 版本代理,请运行以下命令:

    $ docker pull public.ecr.aws/codebuild/local-builds:latest

    要下载 ARM 版本代理,请运行以下命令:

    $ docker pull public.ecr.aws/codebuild/local-builds:aarch64
  3. CodeBuild 代理可通过 https://gallery.ecr.aws/codebuild/local-builds 获得。

    x86_64 版本代理的安全哈希算法 (SHA) 签名为:

    sha256:fac17c6d6c3cb500f6e7975887de1e41d29a9e70a86d6f49f76a2beacfcf967e

    ARM 版本代理的 SHA 签名为:

    sha256:57a5dfda63be50edce13dea16dcd5e73e8d8559029658ba08b793c9a7adc68c7

    您可以通过此 SHA 识别代理的版本。要查看代理的 SHA 签名,请运行以下命令并在 RepoDigests 下查找 SHA:

    $ docker inspect public.ecr.aws/codebuild/local-builds:latest

运行 CodeBuild 代理

运行 CodeBuild 代理
  1. 请切换到包含构建项目源的目录。

  2. 下载 codebuild_build.sh 脚本:

    $ curl -O https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh $ chmod +x codebuild_build.sh
  3. 运行 codebuild_build.sh 脚本并指定容器映像和输出目录。

    要运行 x86_64 构建,请运行以下命令:

    $ ./codebuild_build.sh -i <container-image> -a <output directory>

    要运行 ARM 构建,请运行以下命令:

    $ ./codebuild_build.sh -i <container-image> -a <output directory> -l public.ecr.aws/codebuild/local-builds:aarch64

    <container-image> 替换为容器映像的名称,例如 aws/codebuild/standard:5.0public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:4.0

    该脚本启动构建映像,并在当前目录中的项目上运行构建。要指定构建项目的位置,请在脚本命令中添加 -s <build project directory> 选项。

接收有关新的 CodeBuild 代理版本的通知

您可以订阅 Amazon SNS 通知,这样便能在发布 Amazon CodeBuild 代理的新版本时收到通知。

订阅 CodeBuild 代理通知
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 在导航栏中,将 Amazon 区域更改为美国东部(弗吉尼亚州北部)(如果尚未选中)。您必须选择此 Amazon 区域,因为您订阅的 Amazon SNS 通知就是在此区域中创建的。

  3. 在导航窗格中,选择订阅

  4. 选择创建订阅

  5. 创建订阅中,请执行以下操作:

    1. 对于主题 ARN,请使用以下 Amazon 资源名称 (ARN):

      arn:aws:sns:us-east-1:850632864840:AWS-CodeBuild-Local-Agent-Updates
    2. 对于协议,选择电子邮件SMS

    3. 对于端点,选择要接收通知的位置(电子邮件或 SMS)。输入电子邮件、地址或电话号码,包括区号。

    4. 选择创建订阅

    5. 选择电子邮件,可接收要求确认订阅的电子邮件。按照电子邮件中的指示完成订阅。

      如果您不希望再收到这些通知,请通过以下步骤取消订阅。

取消订阅 CodeBuild 代理通知
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 在导航窗格中,选择订阅

  3. 选择订阅,并从操作中,选择删除订阅。请在提示您进行确认时选择删除