Docker

Dockerfile 스프링부트 실행 이미지 만들기

holy season 2024. 4. 9. 13:16
반응형

Dockerfile 생성

먼저 스프링부트 서버를 운영하기 위한 이미지를 빌드해야 한다.

기본적인 이미지는 ubuntu 22.04 버전을 사용하여 환경을 구성하였다.

FROM ubuntu:22.04

# 디렉토리 생성
RUN mkdir -p /home/java
RUN mkdir -p /home/server/jar

# 작업 디렉토리 설정
WORKDIR /home/server/jar

# java 복사
COPY /openjdk-8u342-b07 /home/java/

# jar 복사
COPY /jar/TEST.jar /home/server/jar/TEST.jar

# 환경 변수 설정
ENV JAVA_HOME=/home/java
ENV PATH=$JAVA_HOME/jre/bin:$PATH
ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

ENTRYPOINT ["java", "-jar", "TEST.jar"]

 

Dockerfile에 RUN 명령어와 WORKDIR를 사용하여 기본 작업 디렉토리를 설정하고 java 관련 폴더를 복사한 후 ENV 명령어로 java에 환경변수를 잡아주었다.

ENTRYPOINT 명령어로 컨테이너가 생성되고 실행되었을 때 복사한 스프링부트 jar파일을 실행하도록 이미지를 구성하였다.

 

docker-compose.yml 생성

docker compose로 docker를 관리하기 위해 docker-compose.yml파일을 생성하였다.

services:
  spring_boot:
    build : .
    container_name: test
    environment:
      - TZ=Asia/Seoul
    ports:
      - 8080:8080

기본적으로 spring_boot라는 서비스를 정의하고 만들어둔 Dockerfile을 빌드해서 사용하도록 build옵션(현재는 같은 경로)을 넣어주었고 port를 바인드하기 위해 호스트,컨테이너를 8080으로 맞춰주었다.

반응형