jib buildTar 옵션으로 빌드 후 tar로 떨궈지면

tar파일 안에 config.json 파일이 있다.

 

이 파일에 entrypoint가 있는데 이 entrypoint의 classpath경로가

우리가 빌드한 springboot의 spring boot classpath다.

 

jib는 jar로 패키징하는 단계를 skip 하고 바로 이미지로 빌드시킨다.

이유는 더 빠르기때문이다. ( jar패키징 단계를 skip해서 )

더 자세한이유는 참조링크확인.

 

따로 jar로 패키징하는 옵션도 줄수있다.

 

대충 entrypoint를 보면 java -cp [classpath] 일것이다.

k8s에서

docker의 entrypoint 는 command이고

docker의 cmd는 args다.

 

jib에 entrypoint밖에 없었으므로 command에 똑같이 넣어주자.

만약 -D옵션이나 jvm옵션을 k8s에서 직접 주고싶다면.

java jvm옵션 -D옵션을 주고 -cp [classpath] 이런식으로 작성하자.

 

이 옵션들은 모두 pom.xml의 jib plugin 옵션에서 설정할수 있다.

 

ps. jib의 default image는 distroless/java 다.

이 이미지에는 쉘이없다..

exec로 쉘 접근하고 싶다면 base image를 변경시켜줘야한다.

 

ps2. base image를 로컬에 있는걸 쓰고 싶다면 이미지이름 앞에 docket://를 붙여주면된다.

 

 

참조

https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md

https://kubernetes.io/ko/docs/tasks/inject-data-application/define-command-argument-container/#참고사항

'개발 > Kubernetes' 카테고리의 다른 글

왜 apiversion이 변경되어 있을까  (0) 2021.06.11
컨테이너 런타임  (0) 2021.03.07
Mutating Webhook 를 이용한 pod injection  (0) 2021.02.16
쿠버네티스의 클러스터 구성  (0) 2021.01.28
클러스터 구성  (0) 2020.09.13

+ Recent posts