본문 바로가기
카테고리 없음

Spring Boot 도커 이미지 생성 & 컨테이너 실행

by 신방동불주먹 2024. 4. 1.

<.jar 파일을 docker 로 올리고 tar 파일로 저장해서 운영서버에 올리는 작업>

1. jar 파일이 생성된 build/libs 폴더에 Dockerfile 을 작성

  • 구성은 크게 아래와 같다.
  1. Base Image를 선택한다.
  2. Image 생성을 위한 작업을 적어준다.(e.g. npm install, COPY code, etc.)
  3. 컨테이너 시작시 실행할 명령어를 입력한다
  • touch Dockerfile 명령어로 Dockerfile을 생성하고, 아래 내용을 추가한다. (vim)
FROM openjdk:17-alpine
ARG JAR_FILE=*.jar
COPY ${JAR_FILE} pds.jar
ENV TZ=Asia/Seoul
ENTRYPOINT ["java", "-jar", "pds.jar"]
CMD ["pds docker image test"]

 

  • FROM: 새로운 이미지를 생성할 때, 기반으로 사용할 이미지를 지정
    • openjdk17 버전
  • ARG: 이미지 빌드 시점에서 사용할 변수 지정
    • jar 파일의 경로를 JAR_FILE 이라는 이름을 가진 변수
  • COPY: 호스트에 있는 파일, 디렉토리를 Docker 이미지의 파일 시스템으로 복사
    • jar 파일을 Docker 이미지 안에서 사용할 수 있도록 복사
  • ENV: 컨테이너에서 사용할 환경변수 지정
  • ENTRYPOINT: 컨테이너가 실행될 때 실행될 때 항상 실행되어야 하는 명령어 지정
    • 도커 컨테이너를 실행할 때, jar 파일을 실행하도록 하기 위해 작성

 

 

2. Build Image

  •  Default Dockerfile
docker build ./

 

  • docker build --platform="linux/amd64" --tag dockerfile:0.1 .

  • 특정 Dockerfile 지정( -f옵션)
    • Dockerfile이 아닌 다른 이름으로 만들었다면 아래 명령어로 직접 file을 지정
docker build -f 파일명

 

 

  • Docker Images 명령어로 확인
  • Docker run 명령어로 실행확인
docker run --name test-dockerfile -p 8090:8090 dockerfile:0.1