본문 바로가기
Backend 개발자/Springboot

Intellij springboot 사전과제 Dockerfile 만들고 실행하기 챕터3

by by 앵과장 2023. 4. 12.
반응형

사전과제 시작하기 챕터3 에서는 

Dockerfile 생성 및 docker run 까지 진행해보도록 하겠습니다.

 

챕터1 : 프로젝트 생성 github

 

프로젝트 생성 github 생성부터 SpringStart(start.spring.io) 사전과제 선행조건 만들기, 사전과제 시작하

많은 기업에서 개발자를 뽑을때 코딩테스트 + 사전과제 전형을 진행하게됩니다. 그래서 사전과제를 시작하기 위해서 필요한 선행조건인 Github 생성부터 Springboot 시작하기 위한 https://start.spring.io

angryfullstack.tistory.com

챕터2 : build.gradle, application.yml 설정및 기본 springboot 실행

 

Intellij Springboot build.gradle 설정 및 Application.yml H2 DB 구성하기 , 사전과제 시작하기 챕터2

사전과제 시작하기 챕터1 에서는 Github Repository 생성 및 Local 맥북 git Sync 맞추는 작업 Intellij 설정까지 알아보았습니다. 챕터1 을 안보셨다면 아래 내용부터 시작해주세요 프로젝트 생성 github 생

angryfullstack.tistory.com

Docker run 으로 실행하는 방법 진행

1단계 Dockerfile 생성

springboot Gradle 프로젝트를 Docker 컨테이너로 동작시키기 위해서는 

Dockerfile 에 아래와같이 설정을 하시면됩니다.

# 베이스 이미지 설정
FROM openjdk:11-jre-slim

# 저자 정보
LABEL maintainer="your-email@example.com"

# 프로젝트의 실행 파일 이름 설정
ARG JAR_FILE=build/libs/*.jar

# 실행 파일을 컨테이너에 추가
COPY ${JAR_FILE} app.jar

# 컨테이너의 실행 명령 정의
ENTRYPOINT ["java","-jar","/app.jar"]

build.gradle 에는 아래코드처럼 docker에 관련된 부분을 추가해주세요

plugins {
    id 'org.springframework.boot' version '2.6.0'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

bootJar {
    archiveBaseName = 'my-springboot-app'
    archiveVersion =  '0.0.1'
}

 

2단계 Docker 설치 ( macOS 애플칩 기준)

Local PC에 Docker Desktop for Mac 을 통해서 설치하는것이 가장 쉬운방법이기때문에 

아래와같이 진행하시면됩니다.

https://www.docker.com/products/docker-desktop

 

Download Docker Desktop | Docker

Docker Desktop is available to download for free on Mac, Windows, or Linux operating systems. Get started with Docker today!

www.docker.com

window, mac, linux 3가지 OS를 제공하기때문에 플랫폼에 따라서 설치하시면되고 mac 유저라면 Apple, Intel 칩셋에 따라서 다운로드 해주시며됩니다.

 

Docker Application 설치하시면 아래 이미지처럼 동작하고있는 어플리케이션 확인 가능하고

docker 이미지들은 images > dashboard 에서 확인 가능합니다.

정상적으로 설치하고 이미지처럼 된다면 터미널에서 아래 명렁어 날리면 버전정보 확인 가능합니다.

dockre --version

3단계 Dockerfile 코드레벨 기반으로 docker image 파일 생성 및 실행

docker build -t my-springboot-app .

프로젝트 경로에서 위에 명령어 실행시 docker images dashboard 에서 확인 가능합니다.

물론 Docker 런처가 실행중상태여야합니다.

 

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ERRO[0000] Can't add file /Users/renzo/workspace/tax/.git/hooks/pre-rebase.sample to tar: io: read/write on closed pipe

 

이런 오류문구를 받으신다면 Docker 데몬을 실행시켜주세요

터미널에서 아래와같이 명령시 docker 데몬이 실행됩니다.

open /Applications/Docker.app

docker 실행하는 방법은 우선 images로 Dockerfile에 구성한 build가 잘실행되었는지 dashboard 리스트 확인을합니다.

 

터미널에서 아래 docker 이미지 'my-springboot-app' 을 8080포트로 실행합니다.

docker run -p 8080:8080 my-springboot-app

정상적으로 구동되면 springboot 로그와 함께 구동되는 로그파일확인이 가능하고 

8080 포트로 접근되는 Web도 확인됩니다.

Docker Run하는 방법에 대해서 정리하였습니다. 

 

챕터4 에서는 k8s 쿠버네티스 설정하는 방법을 한번 찾아볼까합니다.