킹다의 개발블로그

jar 배포하는 도커파일(Docker-File) 만들기😲 본문

03. 서버/docker

jar 배포하는 도커파일(Docker-File) 만들기😲

킹다킹 2021. 8. 13. 09:23
반응형

1. Dockerfile 이란?

  • 코드 형태의 텍스트 문서이다. 여러가지 명령어(FROM, RUN, WORKDIR 등등)를 사용해서 이미지를 만들 수 있다.

jar 를 배포하는 도커파일 예시이다.

FROM adoptopenjdk/openjdk11:jre-11.0.6_10-alpine

RUN mkdir -p jar

WORKDIR /jar

COPY ./build/libs/sampleProject.jar boot.jar

ENTRYPOINT ["java", "-jar","/jar/boot.jar"]

EXPOSE 8080

전체적인 흐름을 살펴보면

  1. FROM 지시어를 통해서 jdk11버전이 설치된 이미지를 가져온다.
  2. jar라는 폴더를 만든다.
  3. 작업 디렉토리를 jar로 변경한다.
  4. 빌드된 jar파일(경로가 포함된)을 boot.jar로 이름을 바꾼 후 jar 폴더에 복사해 붙여넣는다.
  5. 컨테이너가 시작될 때 사용할 명령어를 써준다. jar를 배포할 것이기 때문에 java -jar~ 명령어를 작성해준다.
  6. 컨테이너의 포트를 지정해준다.

도커의 명령어들은 한번 더 표로 정리해보면

명령어 설명
FROM 베이스 이미지 지정
RUN 이미지를 지정하면서 실행할 명령 지정
ENTRYPOINT 컨테이너의 어플 지정 (컨테이너 시작할 때 실행할 명령어)
USER 컨테이너의 사용자 지정
VOLUME 컨테이너의 볼륨 지정
ENV 컨테이너의 환경 변수 지정
LABEL 이미지의 라벨 지정
CMD 컨테이너의 어플 지정 (컨테이너 시작할 때 실행할 명령어)
MAINTAINER 이미지 작성자 명시
WORKDIR 컨테이너 작업 디렉토리 지정
COPY 이미지 생성 시 파일 복사
ADD 이미지 생성 시 파일 추가
EXPOSE 컨테이너의 포트 지정

CMD와 ENTRYPOINT의 차이점은 간략하게

ENTRYPOINT는 항상 실행이 되고, CMD는 docker run 명령어를 실행할 때, 변경이 가능하다고 한다.

다음에는 도커 컴포즈 만들기로 글을 써보겠다!

도커 명령어 참고 사이트 : https://rich-developer.tistory.com/32,
CMD와 ENTRYPOINT 차이점 : https://seokhyun2.tistory.com/61

반응형

'03. 서버 > docker' 카테고리의 다른 글

도커 컴포즈 (Docker-Compose)  (0) 2021.08.18
Comments