본문 바로가기
개발/AWS

AWS ECR SpringBoot Docker Image Push

by 궁즉변 변즉통 통즉구 2022. 6. 1.
반응형

AWS에서 제공하는 Image Repository에 SpringBoot로 작성된 Docker Image를 Push하는 방법을 정리해본다.

 

1. Dockerfile 작성

먼저 간단한 SpringBoot 어플리케이션에 Dockerfile을 작성한다.

Dockerfile 내용은 아래와 같이 작성한다. 

FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim
ARG JAR_FILE_PATH=build/libs/*.jar
COPY ${JAR_FILE_PATH} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

참고로 베이스 이미지를 'FROM adoptopenjdk/openjdk11'로 설정을 했을 때와 'FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim'로 설정했을 때 생성된 이미지 사이즈를 비교해보니 455MB대 278MB로 약 2배정도 차이가 났다.

 

2. Docker 이미지 빌드

# Docker 빌드
docker build -t demo/springboot:1.0 .

# 이미지 확인
docker images

# 이미지 실행
docker run -d --name springboot -p 8080:8080 demo/springboot:1.0

Dockerfile이 위치한 디렉토리에서 Docker 빌드를 실행하고, 이미지를 실행해서 테스트를 해본다.

 

3. ECR 리파지토리 생성

AWS 콘솔에 접속하여 ECR 메뉴로 이동 후 리파지토리를 생성한다. Private 리파지토리로 생성하고 리파지토리 이름을 입력 후 생성한다.

리파지토리 생성을 확인한다.

 

4. ECR 이미지 Push

다시 로컬로 돌아와 ECR 이미지를 Push한다. 먼저 아래 명령으로 ECR에 로그인을 한다. 

# 이미 되어 있다면 생략
aws configure

# ECR 로그인
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin xxxxxxx.dkr.ecr.ap-northeast-2.amazonaws.com

 

 

ECR Push를 위해서는 ECR 리파지토리명이 포함된 Tag가 필요하다. Tag를 생성한다.

docker tag demo/springboot:1.0 xxxxxx.dkr.ecr.ap-northeast-2.amazonaws.com/mytest:1.0

 

마지막으로 이미지를 Push 한다.

docker push xxxxxxx.dkr.ecr.ap-northeast-2.amazonaws.com/mytest:1.0

 

AWS 콘솔 ECR에서 Push된 이미지를 확인한다.

 

 

반응형

'개발 > AWS' 카테고리의 다른 글

AWS CodePipeLine ECS 배포 구성  (0) 2022.08.26
AWS ECS 구성하기  (0) 2022.06.04
AWS CloudWatch Logs 적재(CWAgent)  (0) 2022.03.12
AWS CloudWatch Alarm(경보) 설정  (0) 2022.03.12
AWS CloudWatch Agent 사용(EC2)  (0) 2022.03.12

댓글