写点什么

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:00879
用户头像

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

关注

评论

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

软件测试学习笔记丨Selenium学习笔记:三种等待方式

测试人

软件测试

深入理解 JavaScript 中的剩余参数和扩展运算符

秃头小帅oi

揭秘1024程序员节彩蛋:致敬鸿蒙生态一日千里的幕后英雄

最新动态

HarmonyOS NEXT华为音乐焕新升级,打造高品质沉浸式“音乐厅”

最新动态

MatrixOne 助力 StoneCastle 打造高性能金融分析系统

MatrixOrigin

数据库 金融 HTAP

天润融通知识库赋能一线客户运营,不是宝妈也可以成为育儿专家

天润融通

第71期 | GPTSecurity周报

云起无垠

ETLCloud搭配MySQL | 让关系型数据库更智能

RestCloud

MySQL 数据库 sql ETL 数据集成

天润融通引领知识库革命,大模型技术实现自动知识采集

天润融通

人工智能

可观测日北京|观测云:可观测性需要做到“三个一”

观测云

观测云

喜报丨时序数据库 IoTDB 荣获“创客北京 2024”创新创业大赛专项赛优胜奖

Apache IoTDB

京东商品详情API全攻略:返回值字段一网打尽

技术冰糖葫芦

API 接口 API 文档 API 测试

天润融通大模型文本机器人,让客服迈入“无人化”的第一步

天润融通

科技是把双刃剑,巧用技术改变财务预测

智达方通

企业管理 数字化 科技 全面预算管理

软件需求分析报告完整版(软件项目套用原件)

金陵老街

软件设计 需求分析 软件需求设计

Claude 大更新,AI 可模仿人类访问电脑;月之暗面招募微软亚研院谭旭,研发类 GPT- 4o 的端到端语音模型

声网

低代码开发:数字化转型,轻松“点”到为止!

不在线第一只蜗牛

低代码

征程 6 环视快启 sample

地平线开发者

自动驾驶 算法

天润融通推出智能语音导航,自动识别客户意图实现高效分流

天润融通

微博热搜API:实时数据获取与处理

幂简集成

API 微博

IEPL专线:企业网络的高速保障

Ogcloud

企业组网 企业网络 IEPL 企业网络专线 网络专线

望繁信科技创始人索强出席2022福布斯中国·青年海归菁英100人评选颁奖典礼

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能 望繁信科技

免费报名!第五届“医疗大数据学术交流及 Datathon 活动”诚邀您的参加

ModelWhale

淘宝详情API接口有什么应用?

科普小能手

API 接口 API 测试 淘宝API接口

和鲸科技亮相重庆市医学会临床流行病学和循证医学分会 2024 学术年会,探索临床研究标准化新路径

ModelWhale

人工智能 大数据 大模型 临床医学

系统数据安全解决方案(医疗行业Word原件)

金陵老街

信息安全 数据安全 数据互联互通

下一代 AI 陪伴 | 平等关系、长久记忆与情境共享 | 播客《编码人声》

声网

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