Sobes.tech
Intern

Τι είναι η πολύ-στάδια κατασκευή στο Docker και ποιος είναι ο σκοπός της;

sobes.tech AI

Απάντηση από AI

Η πολύ-στάδια κατασκευή σε Docker είναι μια μέθοδος δημιουργίας εικόνων Docker που χρησιμοποιεί πολλά στάδια κατασκευής σε ένα μόνο Dockerfile. Στα πρώτα στάδια, η εφαρμογή μεταγλωττίζεται και προετοιμάζεται, και στα τελευταία, σχηματίζεται μια ελάχιστη τελική εικόνα χωρίς περιττά εργαλεία και πηγαίο κώδικα.

Γιατί χρειάζεται:

  • Μείωση του μεγέθους της τελικής εικόνας, καθώς περιλαμβάνονται μόνο τα αρχεία που χρειάζονται για την εκτέλεση.
  • Αύξηση της ασφάλειας, καθώς δεν περιλαμβάνονται εργαλεία κατασκευής και πηγαίος κώδικας.
  • Απλοποίηση της διαδικασίας κατασκευής, καθώς όλα τα στάδια περιγράφονται σε ένα Dockerfile.

Παράδειγμα:

FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]

Εδώ, αρχικά, η εφαρμογή σε Go μεταγλωττίζεται, και στη συνέχεια, στο τελικό image, αντιγράφεται μόνο το μεταγλωττισμένο εκτελέσιμο αρχείο.