31 Mart 2023 Cuma

Multi-staged Docker ve SpringBoot

Örnek
Şöyle yaparız
1. Burada fat jar üretiliyor. 
2. Runtime için kullanılan image slim
# First stage: build the application
FROM maven:3.8.3-jdk-11 AS build
COPY . /app
WORKDIR /app
RUN mvn package -DskipTests

# Second stage: create a slim image
FROM openjdk:11-jre-slim
COPY --from=build /app/target/my-application.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
Örnek
Şöyle yaparız
1. Burada build aşamasında mvn dependency:go-offline ile tüm kütüphaneler indirilip docker cache'e alınıyor.
2. fat jar üretiliyor 
3. Runtime için kullanılan image slim değil
FROM openjdk:11 as builder
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline

COPY src/ ./src/
RUN mvn package -DskipTests

FROM openjdk:11
COPY --from=builder /app/target/my-application.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

Hiç yorum yok:

Yorum Gönder