Junior — Middle
Ako implementovať viacstupňovú zostavu obrazu kontajnera?
sobes.tech AI
Odpoveď od AI
Multi-stage build v Dockeru omogoča ustvarjanje več faz gradnje v eni Dockerfile, kar pomaga zmanjšati velikost končnega slike in ločiti faze kompilacije od faze zagona.
Glavna ideja je uporaba več ukazov FROM v eni Dockerfile, kjer lahko vsaka faza uporablja artefakte prejšnjih faz.
Primer:
# Faza gradnje
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Končna slika
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Tukaj najprej zgradimo aplikacijo v Go, nato pa v končni sliki kopiramo samo prevedeni binarni datoteko, brez izvornih datotek in orodij za gradnjo.