Sobes.tech
Junior — Middle

Hangi durumlarda çok aşamalı Docker derlemesi kullanılması önerilir ve bu süreç nasıl optimize edilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Docker çok aşamalı derlemesi, uygulamanın derleme ve çalışma aşamalarını ayırarak kompakt ve optimize edilmiş bir görüntü oluşturmak gerektiğinde önerilir. Örneğin, ilk aşamada uygulama gerekli tüm araçlar ve bağımlılıklarla derlenir, ikinci aşamada ise yalnızca derlenmiş artefaktların kopyalandığı minimal bir görüntü oluşturulur.

Bu, şunlara yardımcı olur:

  • Gereksiz dosya ve derleme araçlarını hariç tutarak nihai görüntü boyutunu küçültmek;
  • Güvenliği artırmak, çünkü son görüntüde geliştirme araçları bulunmaz;
  • Konteynerlerin dağıtımını ve başlatılmasını hızlandırmak.

Çok aşamalı derleme ile Dockerfile örneği:

# Derleme aşaması
FROM maven:3.8-jdk-11 AS builder
WORKDIR /app
COPY . .
RUN mvn clean package

# Çalıştırma aşaması
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=builder /app/target/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]