#5 Docker로 Spring boot 프로젝트 배포하기

CHEESE·2022년 8월 18일
0

FLTM

목록 보기
5/6

전체 구조

  1. 어플리케이션을 Dockerize하기 위해 Dockerfile을 작성한다.
  2. Dockerfile을 기반으로 프로젝트를 빌드하여 Docker image화한다.
  3. Docker hub에 push한다.
  4. 배포 서버에서 pull하여 Docker image를 컨테이너화한다.

Dockerfile 작성

FROM openjdk:11-jdk
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

spring boot 프로젝트를 gradle로 빌드하면 기본적으로 build/libs 하위에 jar 파일이 생성된다.

dockerhub repository 생성

Docker hub에 push하기 위해 repository를 먼저 생성한다.

Dockerfile 기반 빌드하여 Docker hub에 push

다음 Spring boot 프로젝트 root에서 터미널로 아래 명령어를 입력한다.

docker build --platform linux/amd64 -t ychxexn/fltm .
docker push ychxexn/fltm

배포 서버 설정

Google Cloud Platform을 이용했다.

사전 작업

프로젝트 만들고
Compute Engine > VM 인스턴스
Compute Engine API 다운로드

인스턴스 만들기 클릭
centOS로 설정하고 저장

SSH 접근 후 docker 설치

설치 및 실행 명령

sudo yum install docker
sudo systemctl start docker

Docker image 컨테이너화

sudo docker login
sudo docker pull ychxexn/fltm
sudo docker run -p 8080:8080 ychxexn/fltm

방화벽 설정

VPC 네트워크 > 방화벽 > 방화벽 규칙 만들기

Compute Engine > VM 인스턴스 > 만들었던 인스턴스 이름 > 수정

방화벽에서 만들어두었던 네트워크 태그를 인스턴스 설정에 똑같이 적용해주어야 한다!

0개의 댓글