Junior — Middle
Πώς πραγματοποιείται η κατασκευή των Docker εικόνων για εφαρμογές γραμμένες σε Go;
sobes.tech AI
Απάντηση από AI
Για την κατασκευή εικόνων Docker εφαρμογών Go, συνήθως χρησιμοποιείται μια πολύ-στάδια κατασκευή (multi-stage build) για να αποκτηθεί μια ελάχιστη και βελτιστοποιημένη εικόνα.
Βασικά βήματα:
- Στο πρώτο στάδιο (builder), χρησιμοποιείται μια επίσημη εικόνα με το SDK του Go, όπου γίνεται η μεταγλώττιση της εφαρμογής.
- Στο δεύτερο στάδιο, δημιουργείται μια ελάχιστη εικόνα (π.χ., βασισμένη σε
scratchήalpine), στην οποία αντιγράφεται μόνο το μεταγλωττισμένο εκτελέσιμο αρχείο.
Παράδειγμα Dockerfile:
# Στάδιο κατασκευής
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Τελική ελάχιστη εικόνα
FROM alpine:latest
RUN apk --no-cache add ca-certificates
COPY --from=builder /app/myapp /usr/local/bin/myapp
ENTRYPOINT ["/usr/local/bin/myapp"]
Αυτή η προσέγγιση μειώνει το μέγεθος της τελικής εικόνας και εξαιρεί περιττά εργαλεία και πηγές.