본문 바로가기
Java

[Spring Boot] jib로 AWS ECR에 docker image 올리기

by parkjp 2023. 8. 14.

 

 

jib 플러그인 설정하기

 

build.gradle 파일에 plugin 설정을 해준다.

plugins {
    id 'com.google.cloud.tools.jib' version '3.2.1'
}

 

 

 

 

Docker Image에 관한 설정하기

 

build.gradle 파일에 jib 단락안에 from과 to 설정을 해준다.

jib {
    from {
        image = "openjdk:17-oracle"
    }
    to {
        image = "${your-account}.dkr.ecr.ap-northeast-2.amazonaws.com/${your-ecr-repository-name}"
        credHelper = 'ecr-login'
        tags = ["${project.version}-${System.currentTimeMillis()}"]
    }
}

 

 

from

필자는 프로젝트를 자바 17버전으로 설정을 해서 openjdk의 jdk17 이미지를 설정했다.

 

to

 이미지를 올릴 곳을 설정한다. AWS ECR 콘솔에서 리포지토리를 만들어 두었다면 그 주소를 적으면 된다.

credHelper는 로컬에서 올린다면 aws configure가 되어있어야한다. (aws-cli)

젠킨스에서 올린다면 credHelper는 구지 필요없다. 젠킨스에서 AWS acessKey와 secretKey로 권한을 줄 수 있다.

tags는 해당 이미지에 어떤 태그들을 달 건지 설정하는 부분이다. 필자는 버전과 시간을 넣어두었다.

latest는 마지막 버전에 자동으로 달린다.

 

 

 

Docker Image Push하기

 

간단하게 명령어를 입력해도 되고, Intellij를 쓴다면 Gradle탭에 Tasks에 jib가 있을 것이다.

./gradlew jib

 

만약 ECR 리포지토리를 profile 별 설정을 원한다면

아래 예시처럼 해도 된다.

/**
 예시 
 ECR 리포지토리 이름
 test-project-dev
 test-project-prod
**/

build.gradle
to {
  image = "${your-account}.dkr.ecr.ap-northeast-2.amazonaws.com/test-project-${!project.hasProperty('profile') ? 'dev' : profile}"
}

./gradlew -Pprofile=dev jib
./gradlew -Pprofile=prod jib

 

 

반응형