Sobes.tech
Junior — Middle

Πώς πραγματοποιείται η κατασκευή των Docker εικόνων για εφαρμογές γραμμένες σε Go;

sobes.tech AI

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

Για την κατασκευή εικόνων Docker εφαρμογών Go, συνήθως χρησιμοποιείται μια πολύ-στάδια κατασκευή (multi-stage build) για να αποκτηθεί μια ελάχιστη και βελτιστοποιημένη εικόνα.

Βασικά βήματα:

  1. Στο πρώτο στάδιο (builder), χρησιμοποιείται μια επίσημη εικόνα με το SDK του Go, όπου γίνεται η μεταγλώττιση της εφαρμογής.
  2. Στο δεύτερο στάδιο, δημιουργείται μια ελάχιστη εικόνα (π.χ., βασισμένη σε 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"]

Αυτή η προσέγγιση μειώνει το μέγεθος της τελικής εικόνας και εξαιρεί περιττά εργαλεία και πηγές.