写点什么

AWS CodeBuild 将提供本地构建支持

  • 2019-10-18
  • 本文字数:1810 字

    阅读完需:约 6 分钟

AWS CodeBuild 将提供本地构建支持

今天,我们很高兴宣布 AWS CodeBuild 将提供本地构建支持。


AWS CodeBuild


是完全托管的构建服务。没有需要预置和扩展的服务器,或需要安装、配置和操作的软件。您只需指定您的源代码位置并选择构建设置,CodeBuild 就会通过运行构建脚本,对您的代码进行编译、测试和打包。在本博文中,我将向您演示如何在本地设置 CodeBuild 来构建并测试示例 Java 应用程序。


通过在本地计算机上构建应用程序,您可以:


  • 在本地测试 buildspec 文件的完整性和内容。

  • 提交之前,在本地测试并构建应用程序。

  • 快速识别并修复本地开发环境中的错误。

先决条件

在这篇博文中,我将使用 AWS Cloud9 IDE 作为开发环境。


如果您要将 AWS Cloud9 用作 IDE,请遵循“AWS Cloud9 用户指南”中的快速设置步骤


AWS Cloud9 IDE 中已安装了 DockerGit。如果您打算使用笔记本电脑或台式机作为开发环境,请先安装 Docker 和 Git。

在本地构建 CodeBuild 映像的步骤

运行 git clone https://github.com/aws/aws-codebuild-docker-images.git,将此存储库下载到本地计算机。


Git


$ git clone https://github.com/aws/aws-codebuild-docker-images.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


$ cd aws-codebuild-docker-images$ cd ubuntu/java/openjdk-8$ docker build -t aws/codebuild/java:openjdk-8 .
复制代码


设置 CodeBuild 本地代理的步骤

运行以下 Docker pull 命令,下载本地 CodeBuild 代理。


Bash


$ docker pull amazon/aws-codebuild-local:latest --disable-content-trust=false
复制代码


现在,您的计算机上已经具有本地代理映像,并可以运行本地构建了。


运行以下 git 命令下载示例 Java 项目。


Bash


$ git clone https://github.com/karthiksambandam/sample-web-app.git
复制代码

使用本地代理构建示例项目的步骤

我们来使用本地代理构建示例 Java 项目。


执行以下 Docker 命令,运行本地代理并构建您之前克隆的示例 Web 应用程序存储库。


$ docker run -it -v /var/run/docker.sock:/var/run/docker.sock -e "IMAGE_NAME=aws/codebuild/java:openjdk-8" -e "ARTIFACTS=/home/ec2-user/environment/artifacts" -e "SOURCE=/home/ec2-user/environment/sample-web-app" amazon/aws-codebuild-local
复制代码


注意 :我们需要提供三个环境变量,即 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


version: 0.2
phases: build: commands: - echo Build started on `date` - mvn install
artifacts: files: - target/javawebdemo.war
复制代码



$ docker run -it -v /var/run/docker.sock:/var/run/docker.sock -e "IMAGE_NAME=aws/codebuild/java:openjdk-8" -e "ARTIFACTS=/home/ec2-user/environment/artifacts" -e "SOURCE=/home/ec2-user/environment/sample-web-app" amazon/aws-codebuild-local
复制代码


现在,您应该可以成功构建了。成功执行后,在“/artifacts”文件夹中查看构建的最终 artifacts.zip 文件并进行验证。

总结:

在这篇博文中,我向您演示了如何快速设置 CodeBuild 本地代理,以便从本地台式机或笔记本电脑上直接构建项目。如您所见,本地构建可以帮助您快速识别和修复错误,从而提高开发人员的工作效率。


希望本文会对您有所帮助。欢迎在评论中留下您的反馈或建议。


作者介绍:


Randall Hunt


AWS 全球高级布道师。此前供职于 NASA, SpaceX 及 MongoDB。


原文链接:


https://amazonaws-china.com/cn/blogs/china/local-build-support-aws-codebuild/


2019-10-18 09:00942
用户头像

发布了 1931 篇内容, 共 159.9 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

基于 AI 网关和 llmaz,提升 vLLM 推理服务可用性和部署易用性的实践

阿里巴巴云原生

阿里云 云原生 Higress

现代财务——智能技术背景下的企业变革

智达方通

企业管理 全面预算 财务管理

Community Over Code Asia 2025DataOps专题:SeaTunnel社区出品并将带来多个分享!

白鲸开源

开源 技术 数据集成 Apache SeaTunnel CommunityOverCode

Iceberg在图灵落地应用

百度Geek说

开源鸿蒙持续壮大 三大运营商全面入局 多元成果亮相HDC2025

最新动态

全球第一!百度文库智能PPT月访问量超3400万,用户规模翻倍增长

极客天地

三类不同身份的“开发者”,在昇腾CANN的土壤上种下了繁荣之花

极客天地

如何安装CST软件拓展资料包

思茂信息

cst CST软件 CST Studio Suite

数据可视化:5 分钟读懂其核心价值与技术实践

镜舟科技

数据可视化 商业智能 运维监控 StarRocks 跨部门协作

灵活适配团队需求:CFlow 价值流模板高效管理研发全流程

嘉为蓝鲸

DevOps 智能运维 CFlow

领航智能运维新时代!嘉为蓝鲸与三大客户联合斩获央国企数智化转型案例殊荣

嘉为蓝鲸

智能运维 数智化转型

嘉为蓝鲸 CCI 持续集成平台:K8s 集群集成优化容器构建体验

嘉为蓝鲸

DevOps 智能运维 k8s集群

CAD图层是干什么用的?怎么设置?

在路上

cad

MaxCompute x 聚水潭:基于近实时数仓解决方案构建统一增全量一体化数据链路

阿里云大数据AI技术

人工智能 数据挖掘 数据库 数据分析 数据处理

本地部署Jupyter,没有公网IP如何用内网穿透工具实现远程访问?

贝锐

机器学习 内网穿透 jupyter jupyterlab

吉利银河A7全球首秀,2L级油耗引领电混家轿进入新时代

极客天地

set -euo pipefail

Joseph295

京东币链科技严正声明:澄清稳定币及合作虚假信息,暂未设立相关社区

TechubNews

无需公网IP,内网穿透远程访问Ollama+Gemma3模型+Open WebUI教程

贝锐

内网穿透 ollama Gemma

JeecgBoot v3.8.1发布,集成AI应用的低代码平台

JEECG低代码

低代码平台 代码生成 AIGC JeecgBoot AI低代码平台

可以显著提升脚本的健壮性和效率

Joseph295

海洋服务业定义以及需要使用堡垒机场景分析

行云管家

网络安全 数据安全

这个提升效率宝藏级工具一定要收藏使用

秃头小帅oi

打造鸿蒙系统中最好用的加载动画和提示弹窗

幽蓝计划

harmony HarmonyOS NEXT

Go 框架选型指南:为什么我们团队最终选择了它?

vison

Go gRPC Backend Developer gin

从数据到决策:CMDB消费在故障预警与根因分析中的实践

嘉为蓝鲸

AIOPS CMDB 智能运维

如何快速打印CAD图纸?怎么设置?

在路上

cad cad看图 CAD看图王

《Building REST APIs with Flask》读后感

codists

flask

Python搭建HTTP服务如何快速远程访问?内网穿透工具一招搞定!

贝锐

Python HTTP 内网穿透

ZFile+内网穿透工具,无需NAS、无需公网IP搭建私有网盘/私有云

贝锐

内网穿透 NAS

淘宝API系列:淘宝商品评论API接口详解

tbapi

淘宝API 天猫API 淘宝商品评论API 天猫商品评论API

AWS CodeBuild 将提供本地构建支持_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章