Middle+
Τι είναι το multi-stage build στο Docker; Γιατί χρειάζεται;
sobes.tech AI
Απάντηση από AI
Η πολύ-στάδια κατασκευή στο 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"]