1. 程式人生 > >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

我們來為 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 映像。執行完該命令需要幾分鐘的時間。

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

設定 CodeBuild 本地代理的步驟

執行以下 Docker pull 命令,下載本地 CodeBuild 代理。

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

現在,您的計算機上已經具有本地代理映像,並可以執行本地構建了。

執行以下 git 命令下載示例 Java 專案。

$ 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 資料夾,然後重新構建專案。

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 本地代理,以便從本地臺式機或膝上型電腦上直接構建專案。如您所見,本地構建可以幫助您快速識別和修復錯誤,從而提高開發人員的工作效率。

希望本文會對您有所幫助。歡迎在評論中留下您的反饋或建議。

相關推薦

AWS CodeBuild 提供本地構建支援

AWS CodeBuild 是完全託管的構建服務。沒有需要預置和擴充套件的伺服器,或需要安裝、配置和操作的軟體。您只需指定您的原始碼位置並選擇構建設定,CodeBuild 就會通過執行構建指令碼,對您的程式碼進行編譯、測試和打包。在本博文中,我將向您演示如何在本地設定 CodeBuild

Ubuntu提供智能機、平板和智能電視等多平臺支持

cnn dna t42 多平臺 list wkt 支持 ubunt 智能電視 Python3.4.0beta2%E5%8F%91%E5%B8%83 http://music.baidu.com/songlist/495728101?SFj0Q2=10-08/17 htt

docker深入2-UI之portainer的本地構建

golang.org portainer ui docker go docker深入2-UI之portainer的本地構建2017/9/26一、準備環境 依賴:Docker, Node.js >= 0.8.4 和 npm ~] curl --silent --location ht

IDEAGit本地倉庫Push至遠程倉庫

idea 本地倉庫 tps .net csdn http blank 項目 mage 轉自:https://blog.csdn.net/qq_15653601/article/details/79870996 本地本地倉庫項目:IDEA將Git本地倉庫Push至遠程倉庫

9月第3周業務風控關註|央行:進一步探索構建行業共享的金融網絡安全防護平臺

防護 缺陷 cto process 單位 個人 情況 依然 hat 易盾業務風控周報每周呈報值得關註的安全技術和事件,包括但不限於內容安全、移動安全、業務安全和網絡安全,幫助企業提高警惕,規避這些似小實大、影響業務健康發展的安全風險。 1.央行:將進一步探索構建行業共享的金

快速使用阿里雲 Linux ubuntu,安裝xfce4 圖形介面,並提供遠端桌面支援

阿里雲Ubuntu系統預設不安裝UI,所以一開始是命令列介面, root賬號登入後:依次執行以下命令,可快速構建UI程式並提供本地Windows系統遠端桌面支援。 第一步:更新軟體倉儲 sudo apt-get update #更新apt  同步 /etc/apt/sou

Ubuntu Server 18.04上構建支援TLS的Nginx

開箱即用,Nginx不支援TLS,但本文將引導您完成構建Nginx以支援安全協議的過程。 Nginx已經成為一個非常受歡迎的Web伺服器。 有充分的理由。 它的速度非常快,並且可以很好地擴充套件。 然而,使用這個開源Web瀏覽器的一個注意事項是,它不支援開箱即用的傳輸層安全性(TLS)。 為何選擇TLS

本地構建:Gulp

Gulp中文網:https://www.gulpjs.com.cn/ Gulp英文網:https://gulpjs.com/ Gulp:工作流程自動化+強化 (一)安裝初始化   (二)基礎API及外掛 ①gulp.src(globs[, options]);//輸出(Emits)符

9月第3周業務風控關注|央行:進一步探索構建行業共享的金融網路安全防護平臺

易盾業務風控週報每週呈報值得關注的安全技術和事件,包括但不限於內容安全、移動安全、業務安全和網路安全,幫助企業提高警惕,規避這些似小實大、影響業務健康發展的安全風險。 1.央行:將進一步探索構建行業共享的金融網路安全防護平臺 據澎湃新聞訊息,2018年網路安全技術

Grunt 一個專為JavaScript提供構建工具

新手最好找個視訊來看看,   Grunt的配置及使用(壓縮合並js/css) - 每天都記錄一點點! - CSDN部落格https://blog.csdn.net/playboyanta123/article/details/43230831 grunt-contrib-uglify - ko

AWS雲直連-本地訪問海外網際網路加速

客戶需求說明: 1、北京辦公室通過IPSEC或專線連線北京AWS、日本AWS,頻寬需求2M至10M;2、目前北京AWS多個賬號,日本AWS多個賬號,日本AWS是否可以使用AWS對等連線的產品。 分析說明: 1、根據客戶的需求分析,PBS提供一臺裝置在客戶的北京Offic

如何idea本地已有的新專案完整提交到gitlab上

使用idea開發工具新建了一個專案工程,此時該專案工程是沒有任何的版本控制,程式碼存放在本地磁碟中,如果需要直接將此專案工程程式碼提交到gitlab上,該如何操作呢,因為當前沒有版本控制,不能像正常的程式碼那樣提交,必須先建立git本地倉庫,然後關聯到遠端的gi

原裝TTP233D-RB6 DFN6L 單通道輕觸開關 原廠直銷提供專業技術支援、工程服務 TTP代理TTP233D-RB6

產品型號:TTP233D- RB6 封裝形式:DFN6L 產品年份:新年份 單按鍵觸控檢測 IC 概 述 ●TTP233D-RB6 TonTouchTM 是單按鍵觸控檢測晶片, 此觸控檢測晶片內建穩壓電路, 提供 穩定的電壓給觸控感應電路使用, 穩定的觸控檢測效果可以廣泛的滿足不同應用的需求, 此觸控檢測

如何Git本地專案釋出到GitHub

一、準備工作 本地安裝了Git,建立了本地倉庫,並且專案已經提交(commit)到本地倉庫。 註冊了GitHub賬號,並且在GitHub上建立了遠端倉庫,用於關聯本地倉庫。 二、SSH與HTTPS的不同 使用HTTPS協議,可以隨意克隆github上的專案,而不管是誰(

dockerjar包構建成映象並執行

1.編寫Dockerfile檔案    FROM java:latest    ADD AeurekaServer-0.0.1-SNAPSHOT.jar app.jar    RUN bash -c 'touch /app.jar'    ENTRYPOINT ["java"

Docker Maven外掛本地構建映象釋出至遠端伺服器

環境使用阿里雲ECS伺服器及Ubuntu 16.04進行測試 Ubuntu 16.04安裝Docker 1.安裝步驟 # step 1: 安裝必要的一些系統工具,新增apt支援https的URLs(如不存在/usr/lib/apt/methods/ht

使用docker Maven外掛本地構建docker映象併發布到遠端伺服器

2.將應用匯入Eclipse IDE並建立Application類。目錄結構如下: Application程式碼如下: package com.example.demo.controller; import org.springframework.web.bind.annotation.Re

在樹莓派(Raspberry Pi)上Qt5的本地構建

        網上有很多關於在Raspberry Pi上構建Qt5的教程,但所有或大部分教程都是使用桌面機器交叉編譯Raspberry Pi的二進位制檔案。如果您交叉編譯,您將無法執行qmake並在Raspberry Pi本身上建立。本教程旨在向您展示如何在Raspberr

Beta版: 使用 unicode UTF-8 提供全球語言支援(U)

日文版windows 10 Pro ,安裝某日語輸入法後,一切正常. 有一次 用 LeapFTP 下載檔案,中文檔案顯示亂碼, 遂想起用 intl.cpl 更改系統區域設定下有個選單 Beta版: 使用 unicode UTF-8 提供全球語言支援(U) ,打勾後,是不亂碼了. 但是一輸入日語,程式就c

獲取本地機器支援的.NET版本

 /// <summary>         /// 獲取.net版本         /// </summary>         /// <returns></returns>         public string[]