새소식

반응형
Development

[Gradle] bootBuildImage task (buildpack, builder)

  • -
반응형

gradle-plugin을 이용해서 spring-boot image를 쉽게 만들 수 있다

해당 task에서 어떻게 image를 생성하는지 알아보자

 

https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#build-image

해당 문서에서 알아보려고 하는 내용에 대해서 가이드 하고 있다

 

Packaging OCI Images

The plugin can create an OCI image from a jar or war file using Cloud Native Buildpacks (CNB).
Images can be built using the bootBuildImage task.

gradle plugin에서는 Cloud Native Buildpacks(CNB)을 통해서 jar or war 파일을 이용해 OCI image를 만들 수 있다

    • Open Container Initiative (OCI)
      • 컨테이너 런타임과 이미지 관련 업계 개방형 표준
    • Cloud Native Buildpacks (CNB) 
      • buildpack 만들기 위한 표준 

 

해당 task를 수행할 때 다양한 옵션을 설정할 수 있는데

그중에 image를 만드는데 영향을 미치는 옵션에 대해서 알아보자 

tasks.named('bootBuildImage') {
    builder = 'paketobuildpacks/builder-jammy-base:latest'
}

 

spring-boot initializer를 이용해서 spring-boot 프로젝트를 생성하면 해당 block이 생성된다.

-> paketobuildpacks을 이용 

 

Builder

A builder is an image that contains all the components necessary to execute a build.

결론적으로 image를 만드는 주체 

image를 만들기위한 정보를 가지고 있다 - builder.toml

  • build image : image를 만들기위한 환경에 대한 이미지
  • run image : 최종 image가 돌아갈 환경에 대한 이미지 
  • buildpack(아래에 설명)

paketobuildpacks에서 제공하는 builder 정보 : https://paketo.io/docs/reference/builders-reference/

 

Buildpack

A buildpack is a set of executables that inspects your app source code and creates a plan to build and run your application.
Buildpacks that the builder should use when building the image

 

builer가 image를 만들기위해서 필요한 구성 요소

 

paketobuildpacks의 spring boot buildpack에서 제공하는 buildpack 정보 : https://paketo.io/docs/reference/java-reference/#spring-boot-applications

 

해당 buildpack 중에서 실행되는 application에서 사용하는 buildpack만 빌드할때 쓰인다

 > Running creator
    [creator]     ===> ANALYZING
    [creator]     Restoring data for SBOM from previous image
    [creator]     ===> DETECTING
    [creator]     6 of 26 buildpacks participating
    [creator]     paketo-buildpacks/ca-certificates   3.6.6
    [creator]     paketo-buildpacks/bellsoft-liberica 10.4.2
    [creator]     paketo-buildpacks/syft              1.39.0
    [creator]     paketo-buildpacks/executable-jar    6.8.2
    [creator]     paketo-buildpacks/dist-zip          5.6.7
    [creator]     paketo-buildpacks/spring-boot       5.27.5

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.