본문 바로가기

Docker

Docker 로 springboot 로 된 서버 배포해보기.

728x90
반응형
SMALL

 

안녕하세요. 오늘은 도커를 이용해 springboot 서버를 배포 해보겠습니다.

우선 도커에 springboot 서버를 배포하기 위해서 springboot 서버를 간단하게 만들어 보겠습니다.

[서버 개발]

@RestController
public class TestController {

    @GetMapping("/test")
    public String test(){
        return "docker complete";
    }
}

"docker complete" 이라는 문자열을 반환하는 기본적인 API 하나를 만들었습니다.

 

[이미지 다운을 위한 설정]

이제 프로젝트 최상위 경로에 Dockerfile 이라는 파일을 만들어 줍니다.

FROM amazoncorretto:17
ARG JAR_PATH=./build/libs
ARG JAR_FILE=docker-0.0.1-SNAPSHOT.jar
COPY ${JAR_PATH}/${JAR_FILE} ${JAR_PATH}/dockertest.jar
ENTRYPOINT ["java","-jar","./build/libs/dockertest.jar"]

Dockerfile 안에 적힌 코드들은 도커 이미지를 만들어주기 위한 설정들 입니다.

 

FROM : 특정 이미지를 Docker hub에서 가져다가 설치합니다.

ARG : 변수를 설정해줍니다.

COPY : 이경로를 이경로에 복사 해줍니다. (인자가 2개 입니다.)

ENTRYPOINT : 컨테이너가 생성되고 최초로 실행할 때 수행해줍니다.

[서버 빌드]

서버파일을 빌드해주겠습니다.

(Gradle 기준입니다.)

Tasks -> build -> clean -> build -> bootJar 

순서대로 눌러주세요.

 

[이미지 다운]

설정이 완료 되었다면 저희가 직접 설정해준 이미지를 내려받겠습니다.

docker build -t dockertest .

build 라는 명령어로 dockertest라는 이미지명을 정해서 이미지를 내려받았습니다.

 

 

[이미지 실행]

이제 받은 이미지를 실행 시켜 보겠습니다.

 

docker run -p 8080:8080 dockertest

run 라는 명령어로 dockertest 라는 이미지를 실행 시키겠다는 명령어 입니다.

중간에 -p 8080:8080 은 도커 컨테이너 포트 포워딩 설정 입니다.

:(콜론) 기준으로 왼쪽은 호스트 시스템의 포트이고 오른쪽은 도커 컨테이너 내부 TCP포트 입니다.

(다수의 "-p" 옵션을 사용하여 다수의 포트 맵핑을 지정해 줄 수도 있습니다.)

 

 

[배포 확인]

이제 도커에 서버가 제대로 배포 됐는지 확인 해 보겠습니다.

 

결과

네. 저희가 만들었던 문자열 반환값이 제대로 출력 되었습니다.

 

이상으로 도커로 서버 배포를 해보는 시간을 가져 보았습니다.

 

잘못된 내용이 있다면, 언제든 댓글로 남겨주시면 감사하겠습니다.

 

끝!

728x90
반응형
LIST