当前位置: 首页 > news >正文

大悟网站建设app拉新推广一手接单平台

大悟网站建设,app拉新推广一手接单平台,沈阳有资质做网站的公司有哪些,江西企业网站建设参考资料 Extending AWS CodeBuild with Custom Build Environments Docker in custom image sample for CodeBuild codebuild自定义构建环境 在创建codebuild项目的时候发现 构建环境是 Docker 映像,其中包含构建和测试项目所需的所有内容的完整文件系统 用ru…

参考资料

  • Extending AWS CodeBuild with Custom Build Environments

  • Docker in custom image sample for CodeBuild

codebuild自定义构建环境

在创建codebuild项目的时候发现

在这里插入图片描述

构建环境是 Docker 映像,其中包含构建和测试项目所需的所有内容的完整文件系统

用rust写一个简单的helloworld,添加一段单元测试

#[derive(Debug)]
struct Rectangle {width: u32,height: u32,
}impl Rectangle {fn can_hold(&self, other: &Rectangle) -> bool {self.width > other.width && self.height > other.height}
}pub fn add_tow(a: i32) -> i32 {a + 2
}#[cfg(test)]
mod tests {use super::*;#[test]fn larger_can_hold_smaller() {let larger = Rectangle { width: 8, height: 7 };let smaller = Rectangle { width: 5, height: 1 };assert!(larger.can_hold(&smaller));}use crate::add_tow;#[test]fn if_add_twos() {assert_eq!(4, add_tow(2));}#[test]fn if_add_twos_info() {let result =  add_tow(2);// assert!(5 == result,"failed to add two for 3, get wrong value {}",result);assert_eq!(5,result,"failed to add two for 3, get wrong value {}",result);}
}

创建buildspec.yml配置

version: 0.2phases:install:commands:- echo "install stage"pre_build:commands:- echo "pre_build stage"- cargo versionbuild:commands:- echo "build stage"- cargo buildpost_build:commands:- echo "post_build test stage"- cargo test
artifacts:files:- target/release/rustdemodiscard-paths: yes

创建codebuild项目如下

$ aws codebuild create-project --cli-input-json file://buildfile.json
// buildfile.json
{"name": "test-codebuild-rust","source": {"type": "CODECOMMIT","location": "https://git-codecommit.cn-north-1.amazonaws.com.cn/v1/repos/test-codebuild-rust","gitCloneDepth": 1,"gitSubmodulesConfig": {"fetchSubmodules": false},"insecureSsl": false},"sourceVersion": "refs/heads/master^{8f5b871be5bf92ef70155801b2f35e4af0779632}","artifacts": {"type": "S3","location": "zhaojiew-test","path": "","namespaceType": "NONE","name": "rustdemo","packaging": "ZIP","overrideArtifactName": false,"encryptionDisabled": false},"environment": {"type": "LINUX_CONTAINER","image": "xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/myrust:latest","computeType": "BUILD_GENERAL1_SMALL","environmentVariables": [],"privilegedMode": false,"imagePullCredentialsType": "CODEBUILD"},"serviceRole": "arn:aws-cn:iam::xxxxxxxxx:role/service-role/codebuild-test-codebuild-rust-service-role","timeoutInMinutes": 60,"queuedTimeoutInMinutes": 480,"encryptionKey": "arn:aws-cn:kms:cn-north-1:xxxxxxxxx:alias/aws/s3","logsConfig": {"cloudWatchLogs": {"status": "ENABLED"},"s3Logs": {"status": "DISABLED","encryptionDisabled": false}}
}

开始构建

aws codebuild start-build --project-name test-codebuild-rust

第一次在PROVISIONING阶段报错,由于指定仓库为ecr,需要给codebuild-test-codebuild-rust-service-role权限拉取ecr镜像

BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE: Unable to pull customer's container image. CannotPullContainerError: Error response from daemon: pull access denied for xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/myrust, repository does not exist or may require 'docker login': denied: User: CodeBuild

第二次出现POST_BUILD预期错误,即测试失败

COMMAND_EXECUTION_ERROR: Error while executing command: cargo test. Reason: exit status 101

第三次成功build

此外,在选择build角色的时候,可以选择两个不同的角色

在这里插入图片描述

这两个角色的区别在于一个是自动创建的servicerole,另一个是该项目的servicerole

测试过程中使用默认servicerole,即使权限足够也会出现以下报错

BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE: Unable to pull customer's container image. CannotPullContainerError: Error response from daemon: pull access denied for 037047667284.dkr.ecr.cn-north-1.amazonaws.com.cn/myrust, repository does not exist or may require 'docker login': denied: User: CodeBuild

codebuild本地构建

https://docs.aws.amazon.com/codebuild/latest/userguide/use-codebuild-agent.html

本地构建意味着虽然codebuild项目仍旧在aws环境中托管,但是实际的构建环境转移到本地

先决条件

  • 安装git和docker
  • 安装codebuild代理

设置build的环境镜像,可以直接使用托管的ecr或手动按需build,构建环境中支持的命令和环境可以参考dockerbuild内容

aws codebuild doceker image

codebuild托管的构建环境镜像有以下

  • standard 4.0
  • standard 5.0
  • standard 6.0
  • amazonlinux2-x86_64-standard:3.0
  • amazonlinux2-x86_64-standard:4.0
  • amazonlinux2-aarch64-standard:1.0
  • amazonlinux2-aarch64-standard:2.0
docker pull public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:3.0

下载codebuild代理image(x86_64 版本),之后使用构建脚本启动,该代理为构建脚本的默认代理,如果没有会自动下载

docker pull public.ecr.aws/codebuild/local-builds:latest

下载构建脚本

构建脚本的具体内容,https://github.com/aws/aws-codebuild-docker-images/blob/master/local_builds/codebuild_build.sh

$ curl -O  https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
$ chmod +x codebuild_build.sh
$ ./codebuild_build.sh
The image name flag (-i) must be included for a build to run
The artifact directory (-a) must be included for a build to run
# -i 指定build的image环境
# -a 指定构建的输出目录
# -s 需要构建项目目录,默认为当前目录
# -l 覆盖默认的代理镜像

在本地新建maven项目并创建buildspec.yml

version: 0.2phases:install:runtime-versions:java: corretto8pre_build:commands:- echo Initializing environmentbuild:commands:- echo Build started on `date`- mvn compilepost_build:commands:- echo Build completed on `date`- mvn package
artifacts:files:- appspec.yml- scripts/**/*- target/unicorn-web-project.wardiscard-paths: no

开始构建

./codebuild_build.sh -i public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:3.0 -a artificats

构建输出如下

docker run -it -v /var/run/docker.sock:/var/run/docker.sock -e "IMAGE_NAME=public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:3.0" -e "ARTIFACTS=/home/ec2-user/efs/test-build-javaweb/artificats" -e "SOURCE=/home/ec2-user/efs/test-build-javaweb" -e "INITIATOR=ec2-user" public.ecr.aws/codebuild/local-builds:latestRemoving 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
Pulling agent (amazon/aws-codebuild-local:latest)...
latest: Pulling from amazon/aws-codebuild-local
Pulling build (public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:3.0)...
3.0: Pulling from codebuild/amazonlinux2-x86_64-standard
Creating agent-resources_agent_1 ... done
Creating agent-resources_build_1 ... done
Attaching to agent-resources_agent_1, agent-resources_build_1
agent_1  | [Container] 2023/02/17 06:09:22 Waiting for agent ping
agent_1  | [Container] 2023/02/17 06:09:22 Waiting for DOWNLOAD_SOURCE
agent_1  | [Container] 2023/02/17 06:09:24 Phase is DOWNLOAD_SOURCE
agent_1  | [Container] 2023/02/17 06:09:24 CODEBUILD_SRC_DIR=/codebuild/output/src116956819/src
agent_1  | [Container] 2023/02/17 06:09:24 yamlDoc
agent_1  | [Container] 2023/02/17 06:09:24 YAML location is /codebuild/output/srcDownload/src/buildspec.yml
agent_1  | [Container] 2023/02/17 06:09:24 No commands found for phase name: install
agent_1  | [Container] 2023/02/17 06:09:24 Processing environment variables
agent_1  | [Container] 2023/02/17 06:09:24 Running command echo "Installing corretto(OpenJDK) version 8 ..."
http://www.yidumall.com/news/42865.html

相关文章:

  • 长沙公司做网站大概多少钱百度浏览器
  • 做简单网站用什么软件有哪些内容快速排名工具免费查询
  • 太仓做网站网络营销策划需要包括哪些内容
  • 手机网站自助建设搜索引擎优化人员优化
  • 陕西找人做网站多少钱企业培训公司
  • 像淘客基地这样的网站如何做山东seo
  • 怎么可以自己做网站今天的新闻内容
  • 免费网站模板广州 竞价托管
  • 做网站有效果吗搜索引擎排名的三大指标
  • 美女做暧暧免费网站百度快速收录接口
  • 山西网站设计企业品牌网站营销
  • 无法与网站建立安全连接百度销售系统登录
  • 呼伦贝尔寰宇网站建设百度官网下载
  • 上海网站建设哪家专业中国十大知名网站
  • 在家做任务赚钱网站竞价推广托管
  • 郑州市公司网站开发设计松原头条新闻今日新闻最新
  • 高端建站公司源码seo优化顾问服务阿亮
  • 重庆大学建设管理与房地产学院网站网站seo怎么做
  • 网站搜索功能模块夫唯seo怎么样
  • 电商平面设计图重庆百度seo排名优化软件
  • 个人承接网站建设西安网站建设推广优化
  • 营销型网站建设哪家公司好seo推广优化工具
  • 石河子做网站的公司最新天气预报最新消息
  • 如何看网站是用什么程序做的北京最新发布信息
  • 怎么写网站建设与运营所有代刷平台推广
  • 制作一个网站首页网站推广工具
  • 网站制作教程谁的好石家庄线上推广平台
  • 成都网站运营二十条优化疫情措施
  • 企业网站源码 可去版权武汉seo优化
  • 服装网站建设策划书的基本结构做电商必备的几个软件