<aside>
👨💻 JIB를 사용하면 이미지를 경량화시킬수 있다.
</aside>
JIB가 뭘까?
Jib는 Docker 이미지를 생성하는 데 사용되는 도구 중 하나입니다. 그러나 Jib는 일반적인 Docker 이미지 빌드 프로세스와 몇 가지 중요한 차이점이 있습니다.
- Docker Daemon 없이 빌드: Jib를 사용하면 Docker Daemon이나 Docker 설치가 필요하지 않습니다. 대신에 Maven이나 Gradle을 통해 빌드를 실행할 수 있습니다. 이는 개발자가 로컬 머신에 Docker를 설치하거나 Docker Daemon을 실행할 필요가 없음을 의미합니다.
- Gradle 또는 Maven 플러그인 사용: Jib는 Gradle 플러그인 또는 Maven 플러그인으로 사용됩니다. 이러한 플러그인을 사용하여 프로젝트의 설정 파일에 이미지 빌드 및 배포를 구성할 수 있습니다.
- 레이어 최적화: Jib는 이미지 빌드를 위해 레이어를 최적화하여 전체 이미지를 다시 빌드하지 않고도 변경 사항을 적용할 수 있습니다. 이는 이미지를 더 빠르게 빌드하고 배포할 수 있도록 합니다.
- 빌드 환경 분리: Jib는 이미지를 빌드하는 데 필요한 의존성을 별도의 레이어로 분리하여 최종 이미지를 더 가벼운 상태로 유지합니다. 이는 이미지의 크기를 줄이고 보안을 강화하는 데 도움이 됩니다.
- 자동 설정: JIB는 Java 애플리케이션의 실행 방법을 자동으로 설정하여, 개발자가 별도의 ENTRYPOINT를 지정할 필요가 없다.
먼저 DockerHub에 회원가입 후 Repository를 생성한다.

build.gradle.kts - jib 플러그인 작성
- 최상단에 위치한 플러그인에 최신 jib를 작성해준다. (검색하면 최신버전 나온다.)
plugins {
id("org.springframework.boot") version "3.2.5"
id("io.spring.dependency-management") version "1.1.4"
kotlin("jvm") version "1.9.23"
kotlin("plugin.spring") version "1.9.23"
kotlin("plugin.jpa") version "1.9.23"
// 최신버전 JIB 추가
id("com.google.cloud.tools.jib") version "3.4.2"
}
build.gradle.kts - jib 설정코드 작성
- jib에 대한 설정은 다음과 같다. (여기서 중요한것은 DockerHub 계정의 환경변수 설정부분이다.)
- 만약 환경변수로 DockerHub계정 설정을 하지않는다면 JIB 빌드에서 계속 401 오류가 발생할것이다.
JIB 설정 파일