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 |