-
作为输入,您必须为 CodeBuild提供构建项目。一个构建项目包含有关如何运行构建的信息,包括从何处获取源代码、要使用的构建环境、要运行的构建命令以及存储构建输出的位置。一个构建环境代表操作系统、编程语言运行时和 CodeBuildSbuild 使用的工具的组合。
-
CodeBuild使用构建项目创建构建环境。
-
CodeBuild将源代码下载到构建环境中,然后使用构建项目中定义的或源代码中直接包含的构建规范 (build spec)。一个BuildSpec是生成命令和相关设置的集合,采用 YAML 格式,CodeBuild使用。
-
如果存在任何构建输出,则该构建环境会将其输出上传到 S3 存储桶。构建环境也可以执行您在构建规范中指定的任务 (例如,将构建通知发送到 Amazon SNS 主题)。
-
在构建运行时,构建环境会将信息发送给 CodeBuild和 Amazon CloudWatch Logs。
-
在构建运行时,您可以使用AWS CodeBuild控制台,AWS CLI,或者AWS从 CodeBuild中获取汇总的构建信息,并从 Amazon CloudWatch Logs 中获取详细的构建信息。如果您使用AWS CodePipeline要运行构建,您可以从 CodePipeline 获取有限的构建信息。
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- export AWS_REGION="us-east-1"
- export AWS_ACCOUNT_ID="907088852848"
- export IMAGE_REPO_NAME="root"
- aws --version
- $(aws ecr get-login --region $AWS_REGION --no-include-email)
- export REPOSITORY_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/root:latest
build:
commands:
- echo Building the Docker image...
- docker build -t root .
- docker tag root 907088852848.dkr.ecr.us-east-1.amazonaws.com/root:latest
post_build:
commands:
- echo Pushing the Docker images...
- docker push 907088852848.dkr.ecr.us-east-1.amazonaws.com/root:latest
- echo Writing image definitions file...
- printf '[{"name":"root","imageUri":"%s"}]' $REPOSITORY_URI > imagedefinitions.json
artifacts:
files: imagedefinitions.json
buildspec.yml示例