사전과제 시작하기 챕터3 에서는
Dockerfile 생성 및 docker run 까지 진행해보도록 하겠습니다.
챕터1 : 프로젝트 생성 github
챕터2 : build.gradle, application.yml 설정및 기본 springboot 실행
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
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 쿠버네티스 설정하는 방법을 한번 찾아볼까합니다.