설명
github와 연동
1.
buildspec.yml 파일을 푸쉬할 코드 레포지토리에 생성
version: 0.2
env:
git-credential-helper: yes
variables:
# docker 파라미터 정의
ECS_CONTAINER_NAME: AWS ECS CONTAINER NAME # aws ecs에 등록이 되어 있는 container name (수저
IMAGE_REPO_NAME: AWS ECR NAME # aws ecr에 등록이 되어 있는 name (수정필요)
IMAGE_TAG: latest
AWS_DEFAULT_REGION: ap-northeast-2
phases:
pre_build:
commands:
# Docker push를 할 ECR에 로그인 필요
# https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html
# https://stackoverflow.com/questions/77488134/codebuild-error-exit-status-127-file-name-too-long
- echo Logging in to Amazon ECR...
- aws --version
- ECR_PASSWORD=$(aws ecr get-login-password --region $AWS_DEFAULT_REGION)
- AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)
- echo -n ${ECR_PASSWORD} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com
- REPOSITORY_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
# Github Repository에 있는 Dockerfile의 위치에 맞춰 수정
- docker build -f ./Dockerfile -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $REPOSITORY_URI
post_build:
commands:
- echo package Source...
- echo push the Docker image...
- docker push $REPOSITORY_URI
# Give your container name
- printf '[{"name":"%s","imageUri":"%s"}]' $ECS_CONTAINER_NAME $REPOSITORY_URI > imagedefinitions.json
- echo $ECS_CONTAINER_NAME
- echo printing imagedefinitions.json
- cat imagedefinitions.json
artifacts:
files:
- imagedefinitions.json
Shell
복사
2.
git과 연결
3.
연결 생성
4.
연동
5.
연결 설정
6.
github 접근 인가
a.
연결할 오가닉이나 어카운트 선택
b.
레포지토리 선택
7.
연결 확인
프로젝트 빌드
1.
프로젝트 생성
2.
이름 작성
3.
GitHub에 연결
4.
환경 설정
5.
buildspec
6.
빌드 생성
7.
빌드 확인
8.
iam role에서 권한 관리
9.
ecr 권한 부여
a.
권한 부여
b.
권한 확인
10.
빌드 시작