728x90
반응형
intellij 기준bootJar를 이용해서 jar파일을 만들어준다.
그러면 build/libs 밑에 jar파일이 생성된다.
jar 파일 실행방법은 java -jar ROOT.jar 이다.
이제 dockerfile을 작성해보자.
docker search openjdk11
docker로 검색해보면 openjdk11 목록을 확인할 수 있다.
기본으로 선택하면 adoptopenjdk/openjdk11을 선택하면된다.
DOCKER FILE 작성
FROM adoptopenjdk/openjdk11
VOLUME /application
ARG DEPENDENCY=./build/libs/ROOT
COPY ${DEPENDENCY}/BOOT-INF/lib ./BOOT-INF/lib
COPY ${DEPENDENCY}/org ./org
COPY ${DEPENDENCY}/META-INF ./META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes ./BOOT-INF/classes
COPY ${DEPENDENCY}/BOOT-INF/classpath.idx ./BOOT-INF/classpath.idx
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
jar를 복사해서 이미지로 만들어도 되지만 COPY한 이유는 ?
docker이미지는 여러 layer로 나눠서 저장/관리되는데 약간의 코드만 고쳐도 jar파일을 포함하는 레이어 전체가 교체되어야 한다. 이는 Image생성시간이나 배포시간도 커지게 되므로 거의 변경되지 않는 Dependency와 자주 변경되는 application code를 분리해서 다른 Layer에 관리하면 성능 향상을 기대할 수 있다고 한다.
중요한점은 library를 먼저 COPY해야 LayerCaching잇점을 살릴 수 있다고 한다.
docker build . -t root
dockerfile이 있는 경로에서 build 명령어를 통해 이미지를 생성한다.
-t 옵션은 이미지명을 입력할 수 있다.
이미지 확인은 docker images
728x90
반응형
'Docker' 카테고리의 다른 글
Docker 에 rabbitmq 설치 (0) | 2021.08.05 |
---|---|
Elk opendistro docker-swarm으로 올리기 (0) | 2021.03.27 |
Docker swarm init token 조회 join 방법 (0) | 2021.03.23 |
Docker local registry 생성 후 image push 해보자 (0) | 2021.03.19 |
Docker private Repository push (0) | 2020.12.03 |