Junior — Middle
Millistel juhtudel on soovitatav kasutada mitmetasandilist Docker-ehitust ja kuidas see aitab protsessi optimeerida?
sobes.tech AI
Vastus AI-lt
Soovitatav on kasutada mitmetasandilist Docker-i ehitamist, kui on vaja luua kompaktne ja optimeeritud pilt, eraldades ehitamise ja käitamise etapid. Näiteks esimeses etapis ehitatakse rakendus koos kõigi vajalike tööriistade ja sõltuvustega ning teises luuakse minimaalne pilt, kuhu kopeeritakse ainult kompileeritud artefaktid.
See aitab:
- vähendada lõpliku pildi suurust, välistades tarbetud failid ja ehitustööriistad;
- suurendada turvalisust, kuna lõplikus pildis ei ole arendusvahendeid;
- kiirendada konteinerite juurutamist ja käivitamist.
Mitmetasandilise ehitise Dockerfile näide:
# Ehitusfaas
FROM maven:3.8-jdk-11 AS builder
WORKDIR /app
COPY . .
RUN mvn clean package
# Käitmisfaas
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=builder /app/target/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]