본문 바로가기

카테고리 없음

Spring boot Docker로 배포하기

1. 환경

  • 서버: virtual box, 우분투 19.04 서버
  • 로컬: 우분투 19.04 desktop, openjdk 12, maven 3.6.0, docker 18.09
...더보기

우분투 기준 설치 방법 

virtualbox

$sudo apt-get install virtualbox

 

openjdk

$sudo apt-get install openjdk-12-jdk

 

maven

$sudo apt-get install maven

 

docker

$sudo apt-get install docker.io

 

* docker 실행시 sudo 없애기

$sudo usermod -aG docker hsoo

 

 

 

2. Spring boot app 만들기

  • 만들어볼 Web app 은 spring boot를 이용하여 "/" -> "hello"를 리턴하는 서버를 만듬
  • 배포 할 앱을 빌드하여 실행 가능한 jar 파일을 만듬
...더보기

maven build cli

$mvn package

 

단위 테스트를 생략

$mvn -DskipTests package

 

// 빌드 후 파일은 ./target 폴더에 위치하게 됨

3. Docker image build

  • Dockerfile을 만듬
  • Docker image를 만듬
...더보기

Dockerfile

FROM openjdk:12

RUN mkdir /app

WORKDIR /app

COPY target/*.jar /app/app.jar

 

Docker image build

// Dockerfile과 같은 위치에서

// 현재 폴더 하위에 target 폴더가 있고 그 안에 빌드된 jar 파일이 있어야 함

// sudo 생략, test라는 이름의 image가 만들어짐

$docker build . -t test

 

Docker image 확인

$docker images

// 결과로 image 목록에 test 가 있어야 함

 

Docker image 실행 확인

// 빌드된 image내부 포트 8080을 외부 8080과 연결하여 test를 실행함

// 외부에서 8080포트로 접근하면 docker container 내부의 8080 포트로 연결됨

$docker run -p8080:8080 test

 

 

4. Docker image를 Docker에 upload

  • tag 명을 이미지를 업로드할 서버에 맞춰 수정함
  • registry를 미리 준비 해야함
  • 여기서는 gitlab의 registry를 이용하겠음
  • docker image를 registry (docker 서버)에 push 함
...더보기

docker image upload

docker image 이름 변경

// test라는 이름의 image를 업로드할 registry 이름에 맞춰 변경함

// gitlab의 경우 registry.gitlab.com/<사용자 ID>/<Custom image name>

$docker tag test registry.gitlab.com/hsoo3289/test-image

// image 이름이 변경되었는지 확인

$docker images

 

docker registry에 로그인

// docker login <registry url> 입력 후 아이디 패스워드를 이용해 로그인 함

$docker login registry.gitlab.com

 

docker image를 푸쉬

$docker push registry.gitlab.com/hsoo3289/test-image

 

5. Docker image 배포

  • 서버에 ssh 접속
  • 배포 대상 서버에 docker 설치
  • docker image를 다운 및 설치
...더보기

Docker image

서버에 접속

$ssh <server ipaddress>

 

Docker 설치

$sudo apt-get update && apt-get install docker.io -y

 

Docker image 다운 및 실행

$docker run -p80:8080 registry.gitlab.com/hsoo3289/test-image