
今天,我们很高兴宣布 AWS CodeBuild 将提供本地构建支持。
通过在本地计算机上构建应用程序,您可以:
在本地测试 buildspec 文件的完整性和内容。
提交之前,在本地测试并构建应用程序。
快速识别并修复本地开发环境中的错误。
先决条件
在这篇博文中,我将使用 AWS Cloud9 IDE 作为开发环境。
如果您要将 AWS Cloud9 用作 IDE,请遵循“AWS Cloud9 用户指南”中的快速设置步骤。
AWS Cloud9 IDE 中已安装了 Docker 和 Git。如果您打算使用笔记本电脑或台式机作为开发环境,请先安装 Docker 和 Git。
在本地构建 CodeBuild 映像的步骤
运行 git clone https://github.com/aws/aws-codebuild-docker-images.git,将此存储库下载到本地计算机。
Git
我们来为 JDK 8 环境构建一个本地 CodeBuild 映像。JDK 8 的 Dockerfile 位于 /aws-codebuild-docker-images/ubuntu/java/openjdk-8。
编辑 Dockerfile 删除最后一行 ENTRYPOINT [“dockerd-entrypoint.sh”],并保存该文件。
运行 cd ubuntu/java/openjdk-8 以更改本地工作区中的目录。
运行 docker build -t aws/codebuild/java:openjdk-8 以在本地构建 Docker 映像。运行完该命令需要几分钟的时间。
Bash

设置 CodeBuild 本地代理的步骤
运行以下 Docker pull 命令,下载本地 CodeBuild 代理。
Bash
现在,您的计算机上已经具有本地代理映像,并可以运行本地构建了。
运行以下 git 命令下载示例 Java 项目。
Bash
使用本地代理构建示例项目的步骤
我们来使用本地代理构建示例 Java 项目。
执行以下 Docker 命令,运行本地代理并构建您之前克隆的示例 Web 应用程序存储库。
注意 :我们需要提供三个环境变量,即 IMAGE_NAME、SOURCE 和 ARTIFACTS。
IMAGE_NAME :构建环境映像的名称。
SOURCE :源代码目录的绝对路径。
ARTIFACTS :工件输出文件夹的绝对路径。
如果您在其他操作系统上运行,绝对路径可能会有所不同:
Linux:/home/user/…
MacOS :/Users/user/…
当您运行示例项目时,会出现运行时错误,提示 YAML 文件不存在。这是因为示例 Web 项目中未包含 buildspec.yml 文件。AWS CodeBuild 需要 buildspec.yml 来运行构建。有关 buildspec.yml 的更多信息,请参阅“AWS CodeBuild 用户指南”中的构建规范示例。
我们来将 buildspec.yml 文件及以下内容添加到 sample-web-app 文件夹,然后重新构建项目。
YAML

现在,您应该可以成功构建了。成功执行后,在“/artifacts”文件夹中查看构建的最终 artifacts.zip 文件并进行验证。
总结:
在这篇博文中,我向您演示了如何快速设置 CodeBuild 本地代理,以便从本地台式机或笔记本电脑上直接构建项目。如您所见,本地构建可以帮助您快速识别和修复错误,从而提高开发人员的工作效率。
希望本文会对您有所帮助。欢迎在评论中留下您的反馈或建议。
作者介绍:
Randall Hunt
AWS 全球高级布道师。此前供职于 NASA, SpaceX 及 MongoDB。
原文链接:
https://amazonaws-china.com/cn/blogs/china/local-build-support-aws-codebuild/
评论