2 回答

TA貢獻1803條經(jīng)驗 獲得超6個贊
使用Ubuntu 18.04
帶有 docker image identfier/tag的本地構(gòu)建平臺aws/codebuild/standard:3.0
來運行一些 python 單元測試(見下文)作為示例。
1.制作本地docker鏡像aws/codebuild/standard:3.0
Ubuntu 18.04平臺在docker中被識別為aws/codebuild/standard:3.0
# download definition of curated docker codebuild images
git clone https://github.com/aws/aws-codebuild-docker-images.git
# got ubuntu version of intrest
cd aws-codebuild-docker-images/ubuntu/standard/3.0/
# build the image (this will take a time as the final image is > 7GB)
docker build -t aws/codebuild/standard:3.0 .
2. 下載codebuild_build.sh
wget https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
chmod u+x codebuild_build.sh
3. 運行本地構(gòu)建作業(yè)
./codebuild_build.sh -i aws/codebuild/standard:3.0 -a /tmp/artifacts -s ./application/
where./application/應(yīng)該更改為您要構(gòu)建的應(yīng)用程序的文件夾。該文件夾應(yīng)該包含您的buildspec.yml. 我的例子buildspec.yml是:
version: 0.2
phases:
? install:
? ? runtime-versions:
? ? ? python: 3.8
? pre_build:
? ? commands:
? ? ? - echo Nothing to do in the pre_build phase...
? build:
? ? commands:
? ? ? - echo Running my python unit tests on `date`
? ? ? - python -m unittest test.py??
? post_build:
? ? commands:
? ? ? - echo Build completed on `date`
請注意- python -m unittest test.py
,我僅在構(gòu)建階段執(zhí)行單元測試。
4. 輸出示例:
Removing agent-resources_build_1 ... done
Removing agent-resources_agent_1 ... done
Removing network agent-resources_default
Removing volume agent-resources_source_volume
Removing volume agent-resources_user_volume
Creating network "agent-resources_default" with the default driver
Creating volume "agent-resources_source_volume" with local driver
Creating volume "agent-resources_user_volume" with local driver
Creating agent-resources_agent_1 ... done
Creating agent-resources_build_1 ... done
Attaching to agent-resources_agent_1, agent-resources_build_1
agent_1? | 2020/01/05 07:50:34 [Customer Config] Couldn't open specified customer config file: open /root/.aws/config: no such file or directory
agent_1? | 2020/01/05 07:50:34 [Customer Config] Error parsing supplied customer config file: invalid argument
agent_1? | [Container] 2020/01/05 07:50:35 Waiting for agent ping
agent_1? | [Container] 2020/01/05 07:50:36 Waiting for DOWNLOAD_SOURCE
agent_1? | [Container] 2020/01/05 07:50:36 Phase is DOWNLOAD_SOURCE
agent_1? | [Container] 2020/01/05 07:50:36 CODEBUILD_SRC_DIR=/codebuild/output/src628986230/src
agent_1? | [Container] 2020/01/05 07:50:36 YAML location is /codebuild/output/srcDownload/src/buildspec.yml
agent_1? | [Container] 2020/01/05 07:50:36 No commands found for phase name: INSTALL
agent_1? | [Container] 2020/01/05 07:50:36 Processing environment variables
agent_1? | [Container] 2020/01/05 07:50:36 Moving to directory /codebuild/output/src628986230/src
agent_1? | [Container] 2020/01/05 07:50:36 Registering with agent
agent_1? | [Container] 2020/01/05 07:50:36 Phases found in YAML: 4
agent_1? | [Container] 2020/01/05 07:50:36? INSTALL: 0 commands
agent_1? | [Container] 2020/01/05 07:50:36? PRE_BUILD: 1 commands
agent_1? | [Container] 2020/01/05 07:50:36? BUILD: 2 commands
agent_1? | [Container] 2020/01/05 07:50:36? POST_BUILD: 1 commands
agent_1? | [Container] 2020/01/05 07:50:36 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
agent_1? | [Container] 2020/01/05 07:50:36 Phase context status code:? Message:?
agent_1? | [Container] 2020/01/05 07:50:36 Entering phase INSTALL
agent_1? | [Container] 2020/01/05 07:50:36 Running command echo "Installing Python version 3.8 ..."
agent_1? | Installing Python version 3.8 ...
5. 檢查構(gòu)建作業(yè)是否成功?
就我而言,我只是想知道所有單元測試test.py
是否成功。為此,您只需檢查退出代碼即可codebuild_build.sh
echo?${?}
0
如果測試成功或1
失敗,這將返回。test.py
可以通過修改使單元測試失敗并重新運行來驗證這一點codebuild_build.sh
。這是有效的,因為當(dāng)所有測試通過時python -m unittest test.py
退出,否則退出。0
1

TA貢獻1848條經(jīng)驗 獲得超6個贊
首先構(gòu)建并標(biāo)記 CodeBuild docker 映像,
然后運行以下命令,確保更新命令中的圖像名稱和標(biāo)簽:
./codebuild_build.sh?-i?<image_name>:<image_tag>?-a?/home/ec2-user/environment/artifacts?-s?/home/ec2-user/environment/sample-web-app

TA貢獻1831條經(jīng)驗 獲得超10個贊
根據(jù)https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/,您必須git clone
包含這些圖像定義的 GitHub 存儲庫: https: //github.com/ aws/aws-codebuild-docker-images。aws/codebuild/standard 不是 DockerHub 存儲庫或有效的 ECR 存儲庫。
- 2 回答
- 0 關(guān)注
- 248 瀏覽
添加回答
舉報