codingBird

TIL - Jib 본문

TIL

TIL - Jib

김뚜루 2023. 9. 2. 00:05

Jib - Java library for building containers

Dockerfile을 작성하지 않고 Docker daemon 없이 Docker 이미지를 빌드할 수 있게 도와주는 라이브러리.

Docker 이미지 레이어 캐싱을 통해 변경사항만 다시 빌드해 속도가 빠르고 Jar를 가지고 있지 않아 상당히 용량이 작다.

 

아래와 같이 작성하고 gradle jib 명령어를 실행하면 도커 이미지를 build.grade jib 에 설정한 대로 굽는다.

plugins {
	id("com.google.cloud.tools.jib") version "3.1.4"
}

jib {
	from {
		image = "openjdk:17"
		platforms {
			platform {
				architecture = "arm64"
				os = "linux"
			}
		}
	}
	to {
		image = "docker.io/${project.findProperty("DOCKERHUB_USERNAME")}/jib-practice"
		tags = setOf("latest")
		auth {
			username = project.findProperty("DOCKERHUB_USERNAME").toString()
			password = project.findProperty("DOCKERHUB_PASSWORD").toString()
			//프로젝트 루트에 docker.propreties 생성
		}
	}
	container {
		creationTime = "USE_CURRENT_TIMESTAMP"
		jvmFlags = listOf("-Dspring.profiles.active=local", "-XX:+UseContainerSupport", "-Dserver.port=8080", "-Dfile.encoding=UTF-8")
		enviroment = [
		...환경설정
					"SPRING_PROFILES_ACTIVE": "dev"
		]
	}
}