반응형
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 |
댓글