Skip to content

Instantly share code, notes, and snippets.

@donhenton
Created January 7, 2020 14:53
Show Gist options
  • Save donhenton/adb4c57e95ef12bd60a5436aa5e77c50 to your computer and use it in GitHub Desktop.
Save donhenton/adb4c57e95ef12bd60a5436aa5e77c50 to your computer and use it in GitHub Desktop.
CodeBuild buildspec for pushing to ECR
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- aws --version
- $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
- REPOSITORY_URI=<repository uri>
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_TAG=build-$(echo $CODEBUILD_BUILD_ID | awk -F":" '{print $2}')
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $REPOSITORY_URI:latest .
- docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker images...
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
- echo Writing image definitions file...
- printf '[{"name":"nodeapp","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
- cat imagedefinitions.json
artifacts:
files: imagedefinitions.json
@donhenton
Copy link
Author

This requires that the assigned build role have permissions for ECR. Will also create an imagedefinitions.json for participation in CodePipeline

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment