(작성중) Jib을 이용한 도커 이미지 빌드

HARIBO·2023년 2월 26일
0

1. Jib

  • 도커 데몬 없이 자바 애플리케이션 도커 이미지 또는 OCI를 빌드할 수 있다.
  • 도커에 대한 깊은 이해가 필요하지 않다.
  • 그레이들, 메이븐 또는 자바 라이브러리로 이용 가능하다.

2. 장점

  • 빠르다: 애플리케이션을 여러 레이어로 쪼게 클래스에서 의존성을 분리한다. 도커처럼 전체 애플리케이션을 빌드할 필요 없이 변경된 레이어만 배포하면 된다.
  • 재생산 가능: 같은 컨텐츠로 빌드한 컨테이너 이미지는 항상 동일하다.
  • Daemonless: CLI의존성을 낮춘다. 도커 이미지를 Maven, Gradle안에서 빌드하고 저장소에 push 할 수 있다. Dockerfile을 작성할 필요가 없고, docker build/push 할 필요가 없다.

3. 예시

  • 1. 샘플 spring boot 앱 생성

// HelloController.java
package com.example.jibtest.controller;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestMapping;

@RestController
public class HelloController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String index() {
        return "Hello, World!";
    }
}
  • 2. gladle 플러그인 설정

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.8'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'
	id 'com.google.cloud.tools.jib' version '3.3.1' // 추가
}
  • 3. 이미지 설정

//build.gradle

jib {
	from {
		//베이스 이미지 지정
		image = 'adoptopenjdk/openjdk14:alpine'
	}
	to {
		image = '이미지 저장소 주소'
		tags = ['latest']
	}
	container {
		// 앱을 실행 시 JVM에 전달 가능한 옵션들
		// 최소, 최대 힙 메모리 설정
		jvmFlags = ['-Xms128m', '-Xmx256m']
	}
}

출처
Jib

0개의 댓글