写点什么

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

发布了 1851 篇内容, 共 119.4 次阅读, 收获喜欢 78 次。

关注

评论

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

网络程序通信的流程

EquatorCoco

php 网络 开发语言

为什么选择SD-WAN进行企业异地组网?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 异地组网 SDWAN

网络调试利器:Chrome Network工具的详细指南

霍格沃兹测试开发学社

Artstudio Pro for mac(绘图和编辑工具)

Mac相关知识分享

Mac软件 照片编辑软件 数字绘画软件 mac下载

IPQ8074 vs. IPQ8064 SOC: A Technical Comparison

wifi6-yiyi

cpu wifi SOC

今日分享丨点亮这四个技能,你也可以成为可视化专家

inBuilder低代码平台

设计 设计开发

3种方式自动化控制APP

快乐非自愿限量之名

运维 自动化

中国首例!「DataKit」上架亚马逊云科技 Marketplace add-ons

观测云

AWS

AR巡点检系统:慧眼智巡,未来视界

AR玩家

AR Rokid Vision pro 炬目AR AR巡点检

FabFilter Total Bundle 2024 for Mac(音频插件合集)

Mac相关知识分享

音频插件 mac插件下载 音乐插件

抑制告警风暴,我们可以做些什么

乘云数字DataBuff

云原生 可观测 告警风暴

SD-WAN远程监控异地组网方案

Ogcloud

SD-WAN 远程监控 企业组网 SD-WAN组网 异地组网

【解决方案】Java 互联网项目中消息通知系统的设计与实现

EquatorCoco

Java 数据库 消息通知

Microsoft Remote Desktop for Mac(微软远程连接软件)

Mac相关知识分享

远程软件 Mac软件 远程桌面 mac下载

Royal TSX for Mac(强大的远程管理软件)

Mac相关知识分享

服务器管理 mac软件下载 远程管理

构建多模态模型,生成主机观测指标,欢迎来战丨2024天池云原生编程挑战赛

阿里巴巴云原生

阿里云 微服务 云原生

技术加持、产品立身“商查利器”爱企查持续助力诚信社会建设

科技热闻

淘宝商品详情API接口:商品属性与评论数据综合获取,助力市场研究

技术冰糖葫芦

API 安全 API 开发 API 策略 pinduoduo API

小程序与小组件技术和场景介绍解析

Onegun

小程序 finclip 小程序组件

京东商品详情API:解锁电商数据的金钥匙

Noah

分享一些关于2024下半年AI发展的预测

澳鹏Appen

人工智能 预测 大模型 未来技术趋势 AI趋势

2024-06-19:用go语言,给定一个起始下标为 0 的整数数组 nums 和一个整数 k, 可以执行一个操作将相邻两个元素按位AND后替换为结果。 要求在最多执行 k 次操作的情况下, 计算数组

福大大架构师每日一题

福大大架构师每日一题

Allavsoft for Mac(视频下载工具) v3.27.2.8935版

Mac相关知识分享

Mac软件 mac下载 视频下载软件 多媒体下载软件

MES系统适用于哪些行业?MES系统具体功能有哪些?

万界星空科技

mes 万界星空科技 离散型制造业 流程型制造业

电竞体育直播APP源码开发费用,以及搭建所需的各种资料和服务

软件开发-梦幻运营部

解决 JMeter 返回内容中文乱码问题的详细指南

霍格沃兹测试开发学社

AI 克隆声音,只需 3 分钟(附最全教程)

阿里巴巴云原生

阿里云 AI 云原生 函数计算

淘宝、1688海外站与外贸站搭建:全面解析与代购系统源码探讨

技术冰糖葫芦

API 安全 API 开发 API 策略 pinduoduo API

云原生技术实践营 · 深圳站:Serverless + AI 专场开启报名!

阿里巴巴云原生

阿里云 Serverless AI 云原生

如何使用JavaScript实现在线Excel附件的上传与下载?

不在线第一只蜗牛

JavaScript Excel

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