gradle 기반의 Spring 웹 서버를 Dockerfile로 만들자.
- gradle 기반 Spring 웹 서버는 예전에 Spring을 공부하면서 만든 Product 시스템으로 구성하였다.
멀티 스테이지를 이용
#이미지를 gradle로 설정
FROM gradle:7.6.3-jdk17 as builder
#작업 디렉토리를 build로 설정
WORKDIR /build
# 작업 디렉토리로 현재 디렉토리에 있는 2개의 파일을 복사함
COPY build.gradle settings.gradle /build/
RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true
COPY . /build
RUN gradle build -x test --parallel
#Stage 2
FROM openjdk:17.0-slim
WORKDIR /app
# builder에서 만들어 두었던 Jar 파일 복사
COPY --from=builder /build/build/libs/Product-0.0.1-SNAPSHOT.jar .
EXPOSE 80
USER nobody
ENTRYPOINT [ \
"java", \
"-jar", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dsun.net.inetaddr.ttl=0", \
"Product-0.0.1-SNAPSHOT.jar" \
]
docker image build -t product .
- 위 과정을 통해 이미지를 만들 수 있다.
postman, 웹 클라이언트 등등 통신을 진행해보자.
- Post 요청을 보내보니 잘 받는 모습이다.
- 실제로 웹으로 Swagger를 접속해보니 잘 접속이 되었고 API 호출 또한 정상적으로 진행되는 것을 확인할 수 있다.
'docker' 카테고리의 다른 글
| Docker 4회차 (0) | 2024.02.01 |
|---|---|
| Docker 3회차 (0) | 2024.01.29 |
| Docker 2회차 (1) | 2024.01.24 |
| Docker 1회차 실습 (0) | 2024.01.21 |
| Docker 1회차 (1) | 2024.01.21 |