Dockerfile에 대하여.. Spring boot를 곁들인..

이유성·2025년 2월 4일
post-thumbnail

Dockerfile이란?

Docker hub에 있는 이미지가 아닌 내가 만드는 이미지!
즉, Dockerfile이란 Docker image를 만들 수 있는 파일

FROM 명령어

Docker container에 특정 초기 이미지를 기반으로 추가적인 세팅을 할 수 있게 해준다.
-> 특정 초기 이미지가 곧 base image이다

FROM [이미지명 : 태그명]

COPY 명령어

Host 컴퓨터에 있는 파일을 복사하여 Container로 전달한다.

COPY [Host 컴퓨터에 있는 복사할 파일 경로] [컨테이너에서 파일이 위차할 경로]

폴더 안에 있는 모든 파일을 복사하고 싶다면 "."을 활용하고 컨테이너에서 파일이 위치할 경로에는 "/"를 뒤에 붙여야한다.

예시

COPY . /my_dir/

와일드카드도 사용할 수 있다

예시

COPY *.txt /text_files/

(txt로 끝나는 파일을 모두 선택한 것임)

ENTRYPOINT 명령어와 RUN 명령어

ENTRYPOINT와 RUN을 착각하는 사람이 많다고 한다.
ENTRYPOINT는 컨테이너가 실행될 때 실행되는 명령어이다

ENTRYPOINT [명령문]

RUN은 이미지를 빌들할 때 명령을 실행시키는 명령어이다

RUN [명령문]

WORKDIR

WORKDIR로 작업 디렉터리를 전환하면 이후 등장하는 모든 명령문은 해당 디렉터리를 기준으로 실행된다

WORKDIR [작업 디렉토리로 사용할 절대 경로]

[실습] Spring boot 프로젝트 docker로 실행시키기!

1. spring boot 프로젝트 만들기


아주 간단하게 만들었다 안에

localhost:8080 으로 접근하면 "Docker yum yum ~"이 나오게 했다

2. Dockerfile 작성!

먼저 spring boot 프로젝트를 build 시켜야한다

./gradlew clean build

그러면 build/libs/에 ~ SHAPSHOT.jar 파일을 볼 수 있다
이 파일을 활용하여 아래 코드를 작성한다

#base image
FROM openjdk:17-jdk 
# 프로젝트를 실행시키기 위한 jar 파일을 컨테이너 내부로 복사하는 것임
COPY /build/libs/*SNAPSHOT.jar /app.jar 
# 컨테이너 실행시 프로젝트 실행!
ENTRYPOINT ["java", "-jar", "/app.jar"]

프로젝트 바로 아래 Dockerfile을 만들고 위 코드를 넣어라

3. 이미지 빌드와 컨테이너 생성 및 실행

#이미지 빌드
docker build -t springboot_server .
#컨테이너 생성 및 실행
docker run -d -p 8080:8080 springboot_server

4. 확인

localhost:8080에 들어가면 잘 나오는 것을 볼 수 있다.

docker ps로도 확인 가능
`업로드중..

profile
Cloud Engineer

0개의 댓글