{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CloudWatchLogsPolicy",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"*"
]
},
{
"Sid": "S3GetObjectPolicy",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": [
"*"
]
},
{
"Sid": "S3PutObjectPolicy",
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"*"
]
},
{
"Sid": "ECRPullPolicy",
"Effect": "Allow",
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage"
],
"Resource": [
"*"
]
},
{
"Sid": "ECRAuthPolicy",
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken"
],
"Resource": [
"*"
]
},
{
"Sid": "S3BucketIdentity",
"Effect": "Allow",
"Action": [
"s3:GetBucketAcl",
"s3:GetBucketLocation"
],
"Resource":
"*"
}
]
}
정책 생성 후 IAM 역할생성 (사이드바에서 역할페이지로 이동 후 역할만들기 버튼 클릭)
CodeBuild 버튼 클릭 후 다음버튼 클릭(이미지 파일 참조)
역할이름을 정한 후 역할생성을 한다.(이미지 파일 참조)
아까 정책추가 할때 한개의 정책을 누락하여 하나 추가를 한다.(아니면 아까 정책생성때 해당 정책을 추가해도 된다 이미지 파일을 하나 더 찍기 귀찮아서 정책을 추가하였음)(AmazonEC2ContainerRegistryPowerUser)
(정책생성 버튼 클릭 후 AmazonEC2ContainerRegistryPowerUser 추가하면 된다. 해당 권한이 없으면 ECR에 이미지 올릴때 codeBuild에서 에러가 발생한다.)
AWS 상단 검색 창에 CodeBuild를 검색 후 코드빌드 프로젝트 생성을 클릭한다.
(설정할게 많아 이미지를 여러개 찍어서 업로드를 하겠습니다)
프로젝트 이름을 설정한다(이미지 참조)
-자세한 내용은 이미지 파일참조 하되 기존 깃헙저장소에 buildspec.yml파일 없다면 업로드를 해야된다.
(해당프로젝트 루트에 위치를 해야 인식을 하니 참조!)
(하단 예제에서 ECR레포지토리 이름은 각자의 레포지토리 이름을 입력을 해야한다.)
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- aws --version
- echo $AWS_DEFAULT_REGION
- $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
- REPOSITORY_URI=872144589073.dkr.ecr.us-east-1.amazonaws.com/ecs_test
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_TAG=${COMMIT_HASH:=latest}
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`
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
생성 후 빌드시작을 하여 테스트하기