1. Gradle 기반 프로젝트 생성하기
- 간단한 Spring Boot 프로젝트를 생성한다.
- DB는 사용하지 않았다.
- MVC 모델로 구성했다.
2. 프로젝트 빌드하기
- 프로젝트를 빌드하면 아래와 같이 .jar 파일이 생성된다.
- 파일명은 프로젝트명-[Gradle에서 설정한 버전] 으로 생성된다.
3. Dockerfile 작성하기
- 멀티 스테이지로 작성했다.
- 우선 프로젝트를 빌드한다.
- 빌드 스테이지에서 RUN를 두 번 하는데 이는 의존성이 변경된 경우에만 의존성 RUN을 한다.
- 앱 스테이지에서는 빌드 스테이지의 산출물인 jar 파일을 복사한다.
FROM gradle:8.5-jdk17 as builder
WORKDIR /build
COPY build.gradle settings.gradle ./
RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true
COPY . .
RUN gradle build -x test --parallel
FROM openjdk:17
WORKDIR /app
COPY --from=builder /build/build/libs/test-0.0.1-SNAPSHOT.jar ./app.jar
EXPOSE 80
ENTRYPOINT ["java", "-jar", "app.jar"]
4. 이미지 생성, 컨테이너 생성 및 실행
- docker build -t dockertest . 명령어로 도커 이미지를 생성한다.
- 아래와 같이 이미지가 생성된다.
- docker run -p 8080:8080 dockertest 명령어로 도커 컨테이너를 생성하고 실행한다.
- postman을 통해 API를 테스트 했다.
- 이름뒤에 " 님" 을 붙이고, 전화번호에 하이픈을 삽입하는 코드가 잘 작동한다.
- 프로젝트는 깔끔하게 날렸다!
'Backend > Docker' 카테고리의 다른 글
Te Docker (3) - 도커 컴포즈 (0) | 2024.01.31 |
---|---|
Te Docker (3) - 마운트 (0) | 2024.01.31 |
Te Docker (3) - 실용 도커 기술 (0) | 2024.01.26 |
Te Docker (3) - 레지스트리에 이미지 공유 (0) | 2024.01.25 |
Te Docker (3) - 멀티 스테이지 Dockerfile 스크립트 (0) | 2024.01.25 |