Τι είναι η πολύ-στάδια κατασκευή στο Docker;
sobes.tech AI
Απάντηση από AI
Η πολύ-στάδια κατασκευή στο Docker είναι μια τεχνική που επιτρέπει τη δημιουργία πολλαπλών σταδίων κατασκευής σε ένα μόνο Dockerfile, όπου κάθε στάδιο μπορεί να χρησιμοποιεί τη δική του βασική εικόνα. Η κύρια ιδέα είναι να διαχωριστούν τα στάδια κατασκευής (π.χ., μεταγλώττιση, εγκατάσταση εξαρτήσεων) από την τελική εικόνα, ώστε στο τελικό κοντέινερ να περιλαμβάνονται μόνο τα αρχεία που είναι απαραίτητα για την εκτέλεση της εφαρμογής, χωρίς περιττά εργαλεία και αρχεία.
Αυτό μειώνει σημαντικά το μέγεθος της τελικής εικόνας και αυξάνει την ασφάλεια, καθώς στο τελικό κοντέινερ δεν υπάρχουν εργαλεία κατασκευής.
Παράδειγμα Dockerfile με πολλαπλά στάδια κατασκευής:
# Στάδιο κατασκευής
FROM node:18 AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build
# Τελικό στάδιο
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
Εδώ, αρχικά κατασκευάζεται η εφαρμογή React, και στη συνέχεια μόνο τα στατικά αρχεία που είναι έτοιμα αντιγράφονται σε μια ελαφριά εικόνα nginx.