SpringBoot

jib 배포, 코드 배포, 코드 컨테이너, 앱 컨테이너 만들기

pepega 2022. 7. 15. 23:07

 

https://alden-kang.tistory.com/1

 

jib를 이용한 자바 앱 컨테이너화

오늘은 구글 클라우드 도구 중 하나인 jib를 이용한 자바 애플리케이션 컨테이너화 과정에 대해 살펴보려고 합니다. jib가 무엇인지 궁금하신 분들을 위해 간단한 설명과 예제 애플리케이션을

alden-kang.tistory.com

 

해당 출처를 기반으로 만들었습니다.

 

 

본 블로그에서는

java 11을 활용했습니다.

 

 

jib은

해당 명령어를 실행하면

 

설정되어 있는 컨테이너 장소에

이미지를 push 하는 명령어이다.

 

자세한 내용은 출처에 있다.

 

 

 

바로 시작

 

build.gradle에

아래와 같이 설정한다.

plugins {
	id 'org.springframework.boot' version '2.7.1'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
	id 'com.google.cloud.tools.jib' version '3.2.1'
}

jib의 최신 버전은

https://plugins.gradle.org/plugin/com.google.cloud.tools.jib 여기서 확인하면 된다.

 

Gradle - Plugin: com.google.cloud.tools.jib

 

plugins.gradle.org

 

build.gradle에

아래와 같이 설정했다.

jib {
	from {
		image = "adoptopenjdk/openjdk11:x86_64-alpine-jre-11.0.11_9"
	}
	to {
		image = "gudrb963/goose-auth-api"
		tags = ["latest"]
	}
	container {
		jvmFlags = ["-Xms128m", "-Xmx128m"]
	}
}

 

image = "adoptopenjdk/openjdk11:x86_64-alpine-jre-11.0.11_9"

java 11 버전을 활용하기 때문에

java 11 버전의 컨테이너를 활용했다.

 

 

image = "gudrb963/goose-auth-api"
tags = ["latest"]

이미지 생성 후

푸시하는 장소는

https://hub.docker.com/repository/docker/gudrb963/goose-auth-api 여기와 같다.

 

Docker Hub

 

hub.docker.com

 

jvmFlags = ["-Xms128m", "-Xmx128m"]

해당 컨테이너는 위와 같은 설정으로 실행 할 예정이다.

 

 

설정 후

싱크를 맞춘 뒤

 

화면 우측에

Gradle -> jib -> jib을 클릭 하면

바로 빌드가 시작된다.

 

물론 dockerhub로 설정하지 않고

private repository (nexus)으로 설정해도 된다.

 

 

혹은

 

./gradlew jib

위 명령어를 통해 실행해도 좋다.