728x90
많은 개발자 분들이 git repository로 github 을 사용하겠지만, 우리의 경우 Bitbucket 을 사용했으므로 이를 기준으로 작성하려고 한다. CI/CD 얼마나 중요한가.
[사전작업] AWS ECR 세팅하기
Bitbucket Pipeline 을 이용해
AWS ECR에 이미지 push하기
1. Bitbucket 에서 Pipeline 활성화하기
1) Bitbucket repository 접속 > [Repository settings] 클릭
2) PIPELINES [Settings] 클릭 > Enable Pipelines 활성화
3) PIPELINES [Repository variables] 클릭 > 공통으로 사용할 환경변수 값 입력
4) PIPELINES [Deployments] 클릭 > deployment명 별로 사용할 환경변수 값 입력
▷ bitbucket-pipeline.xml
* 브랜치명에 의해 이벤트 발생
$ git push origin develop
pipelines:
branches:
develop:
- step:
name: Docker build and push to AWS ECR
services:
- docker
image: atlassian/pipelines-awscli
deployment: Staging
script:
- aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ECR_REPOSITORY
- IMAGE=$AWS_ECR_REPOSITORY/$AWS_ECR_REPOSITORY_NAME
- TAG=staging
- docker build -t $IMAGE:$TAG .
--build-arg ES_HOST=$ES_HOST
--build-arg ES_USER=$ES_USER
--build-arg ES_PASSWORD=$ES_PASSWORD
- docker push $IMAGE:$TAG
* 태그명에 의해 브랜치 발생
$ git tag staging-0.0.1
$ git push origin staging-0.0.1
pipelines:
tags:
staging-*:
- step:
name: Docker build and push to AWS ECR
services:
- docker
image: atlassian/pipelines-awscli
deployment: Staging
script:
- aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ECR_REPOSITORY
- IMAGE=$AWS_ECR_REPOSITORY/$AWS_ECR_REPOSITORY_NAME
- TAG=$BITBUCKET_TAG
- docker build -t $IMAGE:$TAG .
--build-arg ES_HOST=$ES_HOST
--build-arg ES_USER=$ES_USER
--build-arg ES_PASSWORD=$ES_PASSWORD
- docker push $IMAGE:$TAG
* Docker 의 경우 서비스 컨테이너로 취급되므로 기본 메모리 제한은 1024MB 라고 한다. 혹시라도 빌드시에 메모리 이슈가 날 경우 아래 옵션을 추가하여 메모리를 늘려주자.
The Docker-in-Docker daemon used for Docker operations in Pipelines is treated as a service container, and so has a default memory limit of 1024 MB. This can also be adjusted to any value between 128 MB and 3072/7128 MB by changing the memory setting on the built-in docker service in the definitions section.
Source: support.atlassian.com
options:
docker: true
size: 2x
definitions:
services:
docker:
memory: 2048
pipelines:
tags:
staging-*:
- step:
...
git push 해주면 아래와 같이 Bitbucket > [Pipelines] 에서 Progress 가 돌기 시작하는데,
Successful 로 완료되면, AWS ECR 리포지토리에 이미지가 잘 push된 걸 확인할 수 있다.
728x90
'AWS' 카테고리의 다른 글
[ECS] AWS ECS 세팅하기 - 2. 서비스 생성 - 롤링 업데이트 (0) | 2021.05.17 |
---|---|
[ECS] AWS ECS 세팅하기 - 1. 작업정의 및 클러스터 생성 (0) | 2021.05.17 |
[EC2] AWS EC2 볼륨 크기 수정하기 (0) | 2021.05.12 |
[AWS] aws-cli 설치하기 (0) | 2021.04.30 |
[ECR] AWS ECR 세팅하기 (0) | 2021.04.20 |